1
我通過繼承Greenlet
來創建任務。我有一項父母任務,在_run()
的兩個孩子身上撥打start()
。在其他地方(恰好是系統服務)start()
和join()
被調用。正確處理兒童Greenlets
行爲似乎是正確的。例如,使用帶有超時的Queue
可以達到所需的效果,但我還沒有找到一種很好的方法來從說KeyboardInterrupt
中關閉子項或通過向SIGTERM
的父任務註冊回調。在處理程序中,我會打電話child1.kill()
和'child2.kill()but only the first called seemed to raise
GreenletExit`。
我從來沒有打電話join()
對孩子,我不知道我會如何做到這一點。我濫用圖書館嗎?