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