python - 停止扭曲时,工厂会等待 sql 执行完成吗?

标签 python twisted kill

我想知道我是否停止使用

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/

相关文章:

python - 在 Python 中 : How to remove an object from a list if it is only referenced in that list?

javascript - 我可以将 Node.js 包与 Django 一起使用吗?

python - 是否可以在 Python 列表理解中编写多个语句?

python - 来自 gmail 的 HIGHESTMODSEQ 响应

python - 迭代与列表串联

Python 扭曲的 TCP/IP 连接

python - 如何跟踪现有 python 扭曲应用程序的执行

linux shell kill信号SIGKILL && KILL

Python,停止一个线程

android - 如何清理僵尸进程