Django 如何将 运行 外部模块作为守护进程
Django how to run external module as Daemon
是否有从 Django 框架启动无限任务的正确方法?
我需要 运行 一个 MQTT 客户端(基于 Paho)和一个 Python PID 实现。
我想将 Django 用作 "Orhestrator" 因为我只想在 Django 是 运行ning 时启动守护进程。
我使用 django 因为它创建 Rest API 和 ORM 层很简单。
我发现的唯一方法(在 github 上)是修改 __init__.py
,包括我的外部模块 --> .
这不适合我,因为它会在每个 django 管理任务上启动守护进程。
有没有人已经解决了这个问题?
提前谢谢你。
就我而言,我使用 supervisor 来守护我的 django 管理命令。
由于我的 django 项目全部 运行 在 virtualenv 中,我创建了一个脚本来在 运行 管理命令之前初始化 virtualenv:
/home/cocoonr/run_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/cocoonr.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
是否有从 Django 框架启动无限任务的正确方法? 我需要 运行 一个 MQTT 客户端(基于 Paho)和一个 Python PID 实现。
我想将 Django 用作 "Orhestrator" 因为我只想在 Django 是 运行ning 时启动守护进程。
我使用 django 因为它创建 Rest API 和 ORM 层很简单。
我发现的唯一方法(在 github 上)是修改 __init__.py
,包括我的外部模块 -->
这不适合我,因为它会在每个 django 管理任务上启动守护进程。
有没有人已经解决了这个问题? 提前谢谢你。
就我而言,我使用 supervisor 来守护我的 django 管理命令。
由于我的 django 项目全部 运行 在 virtualenv 中,我创建了一个脚本来在 运行 管理命令之前初始化 virtualenv:
/home/cocoonr/run_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/cocoonr.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