首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rabbitmq celeryd celerybeat没有执行生产中的守护进程任务

Rabbitmq celeryd celerybeat没有执行生产中的守护进程任务
EN

Stack Overflow用户
提问于 2011-09-12 08:06:54
回答 2查看 2.5K关注 0票数 5

上周,我在我的生产系统上安装了RabbitMQ和芹菜,在我的本地开发软件上进行了测试,结果都很好。

我觉得我的任务没有在生产中执行,因为我有大约1200个任务还在队列中。

我运行了一个CentOS 5.4设置,使用celerydcelerybeat守护进程以及WSGI,我将导入到wsgi模块上。

当我运行时,/etc/init.d/celeryd start会得到以下响应

代码语言:javascript
复制
[root@myvm myproject]# /etc/init.d/celeryd start
celeryd-multi v2.3.1
> Starting nodes...
    > w1.myvm.centos01: OK

当我运行/etc/init.d/celerybeat start时,我会得到以下响应

代码语言:javascript
复制
[root@myvm fundedmyprojectbyme]# /etc/init.d/celerybeat start
Starting celerybeat...

因此,从输出上看,这些项似乎是成功地执行的--尽管在查看队列时,它们似乎只得到了比执行更多的东西。

现在,如果我执行相同的执行,但是使用django的manage.py而不是./manage.py celeryd./manage.py celerybeat,那么任务就会立即开始处理。

我的/etc/default/celeryd

代码语言:javascript
复制
# Where to chdir at start.
CELERYD_CHDIR="/www/myproject/"

# How to call "manage.py celeryd_multi"
CELERYD_MULTI="$CELERYD_CHDIR/manage.py celeryd_multi"

# Extra arguments to celeryd
CELERYD_OPTS="--time-limit=300 --concurrency=8"

# Name of the celery config module.
CELERY_CONFIG_MODULE="celeryconfig"

# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"

# Workers should run as an unprivileged user.
CELERYD_USER="celery"
CELERYD_GROUP="celery"

# Name of the projects settings module.
export DJANGO_SETTINGS_MODULE="settings"

我的/etc/default/celerybeat

代码语言:javascript
复制
# Where the Django project is.
CELERYD_CHDIR="/www/myproject/"

# Name of the projects settings module.
export DJANGO_SETTINGS_MODULE="settings"

# Path to celeryd
CELERYD="/www/myproject/manage.py celeryd"

# Path to celerybeat
CELERYBEAT="/www/myproject/manage.py celerybeat"

# Extra arguments to celerybeat
CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule"

用于/celeryd和/celerybeat的/etc/init.d文件基于通用脚本

我是不是错过了配置的一部分?

EN

回答 2

Stack Overflow用户

发布于 2012-07-13 03:25:19

有一次,我遇到了必须将'python‘作为前缀添加到CELERYD_MULTI变量的情况。

代码语言:javascript
复制
# How to call "manage.py celeryd_multi"
CELERYD_MULTI="python $CELERYD_CHDIR/manage.py celeryd_multi"

无论出于什么原因,我的manage.py脚本都不会正常执行(即使我有chmod +x并正确地配置了我的shebang)。你可以试一试看看它是否有效。

票数 1
EN

Stack Overflow用户

发布于 2013-06-07 23:08:29

尝试运行以下命令,并查看输出告诉您的内容:

代码语言:javascript
复制
sh -x /etc/init.d/celeryd start 

在我的例子中,芹菜运行的用户在/var/log上有一些权限问题

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

https://stackoverflow.com/questions/7384930

复制
相关文章

相似问题

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