我不知道如果我停止使用,如果恰好有一些SQL的執行承諾停止扭曲時,工廠會等待sql執行完成嗎?
kill `cat twistd.pid`
會發生什麼twistd來處理? 它會等待執行完成嗎?或只是未知的,它可以完成,或放棄?
我知道如果我把執行放在stopFactory方法中,工廠會做類似的事情,比如等待執行完成。但如果我不這樣做,我的意思是執行stopFactory方法,它會在工廠停止之前等待執行完成嗎?
謝謝。
我不知道如果我停止使用,如果恰好有一些SQL的執行承諾停止扭曲時,工廠會等待sql執行完成嗎?
kill `cat twistd.pid`
會發生什麼twistd來處理? 它會等待執行完成嗎?或只是未知的,它可以完成,或放棄?
我知道如果我把執行放在stopFactory方法中,工廠會做類似的事情,比如等待執行完成。但如果我不這樣做,我的意思是執行stopFactory方法,它會在工廠停止之前等待執行完成嗎?
謝謝。
殺默認發送SIGTERM
。扭曲安裝一個SIGTERM
處理它調用reactor.stop()
。凡是當你調用reactor.stop()
當您使用kill
命令會發生,會發生。
更具體地說,任何關閉觸發器將會運行。這意味着連接到Application
將有稱爲其stopService
方法(以及如果返回Deferred
,它將被允許進入關機之前完成)的任何服務。這也意味着反應堆線程池中的工作線程將以有序的方式關閉,即允許完成正在進行的任何工作。
如果您使用的是adbapi,那麼ConnectionPool
將使用自己的ThreadPool
,並且還會註冊一個關閉觸發器,以相似的順序關閉該池。
所以,當你使用kill
停止基於雙絞線的過程中,任何SQL中期執行將被允許完成關閉發生之前。
我使用adbapi,所以我認爲它是安全的。謝謝,JP。 – holsety