我正在尝试在我的 Django 项目中使用 Celery。和往常一样,我搜索了一些东西,阅读了一些关于相同内容的 SOF 问题,一些博客,当然还有官方文档。
但是在 django 中将 celery 作为服务运行时非常令人困惑。我没有找到任何来源。
一个带有一个 App 的简单 django 项目。在这个 App 文件夹中有一个文件tasks.py
,我的所有任务都在其中(现在它是一个任务)。
任务.py
from celery.task.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(minute="*/45"))
def mytask():
#some stuff to do
...
# return a value
这些是我的设置配置
设置.py
from __future__ import absolute_import
import djcelery
djcelery.setup_loader()
BROKER_URL = "amqp://user:user@localhost:5672/vhost"
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
CELERY_BEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
'djcelery'
添加到 INSTALLED_APS
现在如果我想运行 Celery worker 我必须在 screen/tmux 中使用这个命令
python manage.py celeryd --verbosity=2 --loglevel=DEBUG -B
或者
python manage.py celeryd --verbosity=2 --loglevel=DEBUG &
我想知道它是否可以像我们运行 nginx、uwsgi、mysql 等一样作为服务运行。我不想在守护进程模式下运行。我怎样才能做到这一点?
我只想做的主要是sudo service celery restart/reload/stop/start
喜欢
PS:正如我所说,我读过一些 SOF 线程,其中很多都说不要使用crontab
. 那我应该用什么?这是一个安全问题吗?