1

ツイストプロセスを使用して停止するのだろうか

kill `cat twistd.pid`

コミットしているSQL実行が正確にある場合はどうなりますか?実行が完了するのを待っていますか?または単に不明、それは行われる可能性がありますか、それとも放棄されますか?

実行をstopFactoryメソッドに入れると、ファクトリは実行が完了するのを待つなどのことを行います。しかし、そうでない場合は、stopFactoryメソッドの実行を意味します。ファクトリが停止する前に、実行が完了するのを待機しますか?

ありがとう。

4

1 に答える 1

6

killSIGTERMはデフォルトで送信します。Twisted はSIGTERMを呼び出すハンドラをインストールしますreactor.stop()。呼び出したときに起こることはすべて、そのコマンドreactor.stop()を使用したときに起こります。kill

具体的には、すべてのシャットダウン トリガーが実行されます。これは、 にアタッチされたすべてのサービスでメソッドが呼び出されることを意味します (また、 が返された場合Applicationは、シャットダウンが進行する前に終了することが許可されます)。これはまた、リアクター スレッドプール内のワーカー スレッドが整然とシャットダウンされることを意味します。つまり、進行中のジョブを完了できるようになります。stopServiceDeferred

adbapi を使用している場合ConnectionPoolは、独自のシャットダウン トリガーを使用ThreadPoolし、同様の順序でそのプールをシャットダウンするシャットダウン トリガーも登録します。

したがって、killTwisted ベースのプロセスを停止するために使用すると、シャットダウンが行われる前に実行中の SQL が完了することが許可されます。

于 2013-01-14T07:21:21.350 に答える