AbaqusのカスタムQueueの実装

どうもPythonの標準モジュール群の中にはIPCに関するものはソケットぐらいしかないようだ。

やりたいことは単純に同じものがすでに実行されていないか、されているなら何番目に実行されたのかを知りたいだけなのでそう難しいとは思えないのだが、mutexも無理だしセマフォも共有メモリも無理そうなので適当にファイルを作ってそこに書き込んでみた。

AbaqusのQueueを実装するために書いたのだが、Queueオブジェクトはフォアグラウンドで実行されるようでQueueオブジェクト内で待ちに入るとJobを投入しそのJobが実際に実行されるまでプロンプトに戻ってこないのでQueueオブジェクト内で待たせるのは美しくない。かといってJobコントロール用のプロセスを別に用意するのもめんどくさいのでJobの初期化部分で待つようにJob自体を書き換えるという荒業に出た。
具体的にはQueue.submit()内でQueue.createScript()で作られたスクリプトを書き換えてからQueue.spawn()にまわしている。最初からQueue.createScript()を書き換えればいいのだが元の実装がどうなっているのかの情報がないので下手にいじれない。よってadhocな対処法だがQueue.submit()内で書き換えている。Queueのソースぐらい公開してもらいたい。.pycでは読みにくいではないか。