Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django如何作为守护进程运行外部模块_Python_Django_Python Daemon - Fatal编程技术网

Python Django如何作为守护进程运行外部模块

Python Django如何作为守护进程运行外部模块,python,django,python-daemon,Python,Django,Python Daemon,有没有正确的方法从Django框架启动无限任务? 我需要运行一个MQTT客户机(基于Paho)和一个Python PID实现 我想使用Django作为“Orhestrator”,因为我只想在Django运行时启动守护进程 我使用django是因为它创建RESTAPI和ORM层的简单性 我找到的唯一方法(在github上)是修改\uuuu init\uuuuuuu.py,包括我的外部模块--> 这不适合我,因为它会在每个django管理任务上启动守护进程 有人已经解决了这个问题吗? 提前感谢您。就

有没有正确的方法从Django框架启动无限任务? 我需要运行一个MQTT客户机(基于Paho)和一个Python PID实现

我想使用Django作为“Orhestrator”,因为我只想在Django运行时启动守护进程

我使用django是因为它创建RESTAPI和ORM层的简单性

我找到的唯一方法(在github上)是修改
\uuuu init\uuuuuuu.py
,包括我的外部模块-->

这不适合我,因为它会在每个django管理任务上启动守护进程

有人已经解决了这个问题吗?
提前感谢您。

就我而言,我使用daemonize我的django管理命令

由于我的django项目都在virtualenv中运行,因此在运行管理命令之前,我创建了一个脚本来初始化virtualenv:

/home/cocover/run\u standalone.sh

#/bin/bash
export WORKON_HOME=/usr/share/virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
workon cocoonr  # name of my virtualenv

django-admin "$@"
下面是一个命令的管理器配置示例

/etc/supervisor/conf.d/cocover.conf

[program:send_queued_mails_worker]
command=/bin/bash /home/cocoonr/run_standalone.sh send_queued_mails_worker
user=cocoonr
group=cocoonr
stopasgroup=true
environment=LANG=fr_FR.UTF-8,LC_ALL=fr_FR.UTF-8
stderr_logfile=/var/log/cocoonr/send_queued_mails_worker.err
stdout_logfile=/var/log/cocoonr/send_queued_mails_worker.log

WSGI应用程序设计为在请求/响应周期中运行。WSGI服务器通常会在工作线程和进程中运行许多这样的周期,它会根据需要创建和处理这些线程和进程。因此,使用infinte单一任务是违反设计的。您可能需要考虑一个具有多个进程的设计,每个客户端实例都在运行,其中包括客户端的工作人员随时可能丢失。