大量のデータをアプリケーション(InDesign)で自動処理させていた。だが、途中でInDesignがクラッシュする可能性がものすごくあるので、InDesignのスクリプトパレットにスクリプトを放り込んで実行するわけにも行かない(InDesign内のスクリプトパレットから呼び出すと画面の再描画が最低限に減り、高速に実行される)。
そこで、AppleScriptをアプリケーション形式で保存し、複数のプロセスによってInDesignをコントロールしたり、InDesignがコケていないか監視するようにした。途中でInDesignがコケたら、後始末を行って再立ち上げの処理を行う。このため、一晩放置しても勝手に処理を継続してくれるようになった。
AppleScriptをアプリケーション形式で保存して実行すると、スクリプトエディタ上で実行したりScript Menuから実行するよりも速度が落ちる。そのかわり、タイマー割り込みやら他のScriptからのコントロールなどの機能が使えるようになる。便利は便利だが、速度が落ちるのを嫌ってアプリケーション形式で実行することは少ない。
ただ、一晩中走らせて翌朝までに処理が終わっていればいい。
その一方で、「どのぐらい処理できたか」とか「どのぐらいエラーが起きたか」といった進捗状況も知りたい。
そこで、途中経過をtwitter経由でレポートさせることにした。AppleScriptでtwitterに投稿するサブルーチンはすでに作ってあったので、それを組み込むだけだったのだが、このルーチンを実戦投入したことはなかったのでいまひとつ挙動が予想できなかった。
とりあえず、twitterに投稿する前にインターネットの接続確認は行わせているものの……やはり初日はレポートがあがってこなかった。
翌日、プログラムを見直してレポート方法を変更。無事、一定間隔でレポートしてくるようになった。
なかなか便利にモニタできるようになったが、処理終了時間なども予測してレポートしてくれてもよさそうだ。