我有一个 GCE 服务器设置来处理一些数据分析。我可以通过ws
using与它通信twisted
。我是这台服务器的唯一客户。
系统设置如下:
spawn_multiprocessing_hierarchy()
reactor.run() # Blocks main thread
stop_everything_and_cleanup()
当我试图停止系统并且连接了客户端时,reactor
会忽略(或可能无限期延迟?)SIGTERM
,因为它正在处理客户端的连接。但是,系统的所有其他部分都是容错的,reactor
从不处理任何关键数据。它的存在仅用于监控目的。这意味着如果SIGKILL
不是其他multiprocess.Process
需要将数据转储到内存中的es,我可以很容易地在下次启动时继续上次停止的地方。
是否可以SIGTERM
立即(无需等待反应堆中正在运行的任务完成)断开任何连接并停止反应堆?