首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Django完成启动时启动芹菜任务

如何在Django完成启动时启动芹菜任务
EN

Stack Overflow用户
提问于 2018-05-08 19:46:03
回答 2查看 2.2K关注 0票数 1

我用Django配置了芹菜。我正在寻找一种运行任务的方法,该任务预计将在应用程序的整个运行周期中执行。这是我使用Celery worker的情况,还是有一些其他选项可以与Django服务器并行启动这种长时间运行的任务?

另外,我希望能够从任务中访问数据库,并使用supervisord监控它,以防它无法重新启动它。

EN

回答 2

Stack Overflow用户

发布于 2018-10-25 19:53:39

您可以将celery作为后台作业运行,如here所述。此外,在部署时,您必须运行两个pods (在一个系统上运行celery,在另一个django应用程序上运行),并且必须将其配置为在部署任何东西后进行重启。这样,即使后台作业占用了更多的内存,也不会影响应用程序。

为了与应用程序并行运行任务,您可以运行一个调度作业,该作业检查事件,例如每分钟检查一次,并在需要时执行该作业。

票数 0
EN

Stack Overflow用户

发布于 2018-10-26 22:12:44

在你的supervisord.ini中

代码语言:javascript
复制
[group:yourproject-staging]
programs=yourproject-staging-uwsgi,yourproject-staging-celery


[program:yourproject-staging-uwsgi]
command=/data/www/yourproject-staging/bin/uwsgi --ini /data/www/yourproject-staging/conf/yourproject.staging.uwsgi.ini
user=www-data
autostart=true
autorestart=true
startsecs=5
priority=1100
killasgroup=true



[program:yourproject-staging-celery]
command=/data/www/yourproject-staging/bin/celery -A yourproject worker --loglevel=INFO
directory=/data/www/yourproject-staging
environment=E=staging
user=www-data
autostart=true
autorestart=true
startretries=2
exitcodes=0
stopasgroup=true
killasgroup=true
startsecs=5
priority=850
stdout_logfile=/data/log/yourproject-staging/celery_worker.log
stderr_logfile=/data/log/yourproject-staging/celery_error.log

这将在暂存环境中启动您的celery worker。

检查你是否安装了Redis,因为我没有安装,我被卡住了几个小时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50232821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档