我想知道我是否停止使用
kill `cat twistd.pid`
如果确实有一些 sql 执行提交,会发生什么? 它会等待执行完成吗?或者只是未知,可以完成还是放弃?
我知道如果我将执行放在 stopFactory 方法中,工厂会做诸如等待执行完成之类的事情。但如果我不这样做,我的意思是执行 stopFactory 方法,它会在工厂停止之前等待执行完成吗?
谢谢。
最佳答案
杀死发送SIGTERM
默认情况下。 Twisted 安装 SIGTERM
调用 reactor.stop()
的处理程序.当您调用 reactor.stop()
时会发生的任何事情当你使用那个 kill
时会发生命令。
更具体地说,任何关闭触发器都将运行。这意味着附加到 Application
的任何服务将有他们的 stopService
调用的方法(如果返回 Deferred
,它将被允许在关闭继续之前完成)。这也意味着 react 堆线程池中的工作线程将以有序的方式关闭 - 即,允许完成它们正在进行的任何工作。
如果您使用的是 adbapi,则 ConnectionPool
使用自己的 ThreadPool
并注册一个关闭触发器以类似有序的方式关闭该池。
因此,当您使用 kill
要停止基于 Twisted 的进程,任何 SQL 中间执行都将被允许在关闭发生之前完成。
关于python - 停止扭曲时,工厂会等待 sql 执行完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14312876/