gpt4 book ai didi

python - python-daemon 和多处理库之间的区别

转载 作者:行者123 更新时间:2023-12-01 05:08:31 24 4
gpt4 key购买 nike

我需要从 python django 模块运行守护进程,该模块将运行 xmlrpc 服务器。主进程将托管一个 xmlrpc 客户端。我对 python 中的创建、启动、停止和终止守护进程有点困惑。我已经看到了两个库,标准 python 多处理和另一个 python 守护进程( https://pypi.python.org/pypi/python-daemon/1.6 ),但不太明白哪个对我的情况有效。另外,我何时以及如何需要为我的守护进程处理 SIGTERM?有人可以帮我理解这些吗?

最佳答案

多处理模块被设计为线程模块的直接替代品。它被设计用于执行通常使用线程执行的相同类型的任务;通过针对多个核心运行、后台轮询以及您希望与其他任务同时运行的任何其他任务来加速执行。它并非设计用于启动独立的守护进程,因此我认为它不适合您的用例。

python-daemon 库旨在“守护”当前正在运行的 Python 进程。我想你想要的是使用 subprocess使用 subprocess.Popen 从主进程(xmlrpc 客户端)启动守护进程(xmlrpc 服务器)。 。然后,在守护进程内部,您可以使用python-daemon库成为守护进程。

所以在主流程中,是这样的:

subprocess.Popen([my_daemon.py, "-o", "some_option"])

my_daemon.py中:

import daemon
...
def main():
# Do normal startup stuff

if __name__ == "__main__":
with daemon.DaemonContext(): # This makes the process a daemon
main()

关于python - python-daemon 和多处理库之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24631819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com