【发布时间】:2017-03-25 12:54:43
【问题描述】:
我有一个 GCE 服务器设置来处理一些数据分析。我可以使用twisted 通过ws 与它通信。我是这台服务器的唯一客户端。
系统设置如下:
spawn_multiprocessing_hierarchy()
reactor.run() # Blocks main thread
stop_everything_and_cleanup()
当我试图停止系统并且客户端已连接时,reactor 将忽略(或可能无限期延迟?)SIGTERM,因为它正在处理客户端的连接。但是,系统的所有其他部分都是容错的,reactor从不处理任何关键数据。它的存在仅用于监控目的。这意味着我可以很容易地SIGKILL,如果不是其他需要将数据转储到内存中的multiprocess.Processes,以便他们可以在下次启动时从上次停止的地方继续。
是否可以让SIGTERM 立即(无需等待反应器中正在运行的任务完成)断开任何连接并停止反应器?
【问题讨论】:
标签: python twisted reactor twisted.internet sigterm