SQS等のキューを介して非同期に処理を行う Queue Chain パターンを実装する場合、SQSに突っ込む処理はWebアプリ等の処理中に書けばよいので特に考えることはないが、SQSからメッセージを抜いて後続の非同期処理を実行するワーカープロセスをどのように起動管理するか?が肝になる。非同期処理を出来るだけ早く処理したい場合は特に。 JavaならMDB(Message Driven Bean)のような仕組みがすでにあるが、軽量言語(PHP,Pearl, Ruby, Python,etc)向けに何かうまい方法を用意したい。Cronで1分間隔起動だと、処理時間によっては重複起動になるし、そもそも分単位での制御しかできないので出来れば常駐化させたい。言語ごとには解決策があるのかもしれないが、もう少し汎用的な仕組みが欲しい。 で、辿り着いたのが Supervisord というプロセスをデーモン化(
![SQS: ワーカープロセスの稼働管理にSupervisordが便利 - aws memo](https://cdn-ak-scissors.b.st-hatena.com/image/square/00631bbf92d804ca66f8eefed6f78a378dd721bd/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fu%2Fundersteer%2F20120508%2F20120508184224.png)