Arp*_*yal 9 django daemon celery
这几天我一直在绞尽脑汁,我已经看到了stackoverflow上的其他问题(因为这是一个重复的问题)而且我已经尝试了一切来使这项工作,工人运行良好,但芹菜没有开始作为一个过程.
我运行命令:
sudo service celeryd start
Run Code Online (Sandbox Code Playgroud)
我得到:
celery init v10.1.
Using config script: /etc/default/celeryd
celery multi v3.1.23 (Cipater)
> Starting nodes...
> worker1@ip-172-31-21-215: OK
Run Code Online (Sandbox Code Playgroud)
我跑:
sudo service celeryd status
Run Code Online (Sandbox Code Playgroud)
我得到:
celery init v10.1.
Using config script: /etc/default/celeryd
celeryd down: no pidfiles found
Run Code Online (Sandbox Code Playgroud)
该celeryd下来:没有PID文件发现错误是什么,我需要解决的问题.
我知道这个问题是重复的,但在这个问题上仍然跟我一起,因为我已经尝试了所有这些,但仍然无法解决问题.
我正在Amazon Web Services上部署此脚本.我正在使用虚拟环境.
该init.d脚本直接从这里获取,然后我给了它所需的权限.
这是我的配置文件:
# Names of nodes to start
# most people will only start one node:
CELERYD_NODES="worker1"
# but you can also start multiple and configure settings
# for each in CELERYD_OPTS (see `celery multi --help` for examples):
#CELERYD_NODES="worker1 worker2 worker3"
# alternatively, you can specify the number of nodes to start:
#CELERYD_NODES=10
# Absolute or relative path to the 'celery' command:
# CELERY_BIN="/usr/local/bin/celery"
CELERY_BIN="/home/<user>/.virtualenvs/<virtualenv_name>/bin/celery"
# App instance to use
# comment out this line if you don't use an app
# CELERY_APP="proj"
# or fully qualified:
CELERY_APP="<project_name>.settings:app"
# Where to chdir at start.
CELERYD_CHDIR="/home/<user>/projects/<project_name>/"
# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# %N will be replaced with the first part of 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.
# You need to create this user manually (or you can choose
# a user/group combination that already exists, e.g. nobody).
CELERYD_USER="celery"
CELERYD_GROUP="celery"
# If enabled pid and log directories will be created if missing,
# and owned by the userid/group configured.
CELERY_CREATE_DIRS=1
Run Code Online (Sandbox Code Playgroud)
我已经使用的过程中创建使用芹菜用户此文章.
我的项目是一个Django项目,我已经DJANGO_SETTINGS_MODULE在celery设置文件中指定了环境变量,如文档和stackoverflow 答案中所指定的那样.
我是否需要更改init.d脚本中的任何内容或者需要在celery配置文件中添加的任何其他内容...是否是我创建的芹菜用户,因为我也尝试过指定
CELERYD_USER = ""
CELERYD_GROUP = ""
Run Code Online (Sandbox Code Playgroud)
同时还在脚本中将DEFAULT_USER值更改为"" init.d.问题仍然存在.
在其中一个答案中,还被告知项目中可能存在一些错误......但由于我的测试用例,我没有发现任何此类错误.
PS:我已经指定,并且对于隐私问题,他们有自己的原始名称.
Bru*_*yne 10
我的 ubuntu 服务器上也遇到了类似的问题 [错误 2]找不到文件。事实证明,即使您在 celery 示例文档中完成的 celery.service 配置中设置了 /var/run/celery/ 目录,也不会自动创建该目录。您可以创建该目录,并手动授予正确的权限,但是一旦重新启动服务器,该目录就会消失,因为它位于临时目录中。在阅读了一些关于 linux 系统如何运行的文章后,我发现你只需要使用这些行在 /etc/tmpfiles.d/celery.conf 中创建一个配置文件
d /var/run/celery 0755 admin admin -
d /var/log/celery 0755 admin admin -
Run Code Online (Sandbox Code Playgroud)
注意:您需要使用“admin”以外的其他用户:组,或者您可以创建一个名为 admin 的用户:组专门用于处理您的 celery 进程。
您可以通过输入来阅读有关此配置及其操作方式的更多信息
man tmpfiles.d
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3055 次 |
| 最近记录: |