django-celery 与 django-celery-beat 与 Django 2.2

django-celery vs django-celery-beat with Django 2.2

到目前为止,我们一直在使用 celerydjango-celery,但最近我们计划将我们的代码库迁移到 Django==2.2,看起来 django-celery 不支持 Django ==2.2还没有。

使用 django-celery 我们可以从 django admin 配置周期性任务。可以安全地假设,如果我想要类似的功能,那么除了 Celery 包和 运行 celerybeat 实例之外,我将不得不安装 django-celery-beat 包而不是 django-celery - 没有做大量代码更改?

django-celery可以去掉。我用过它,但芹菜没有它也能正常工作。 看看 https://docs.celeryproject.org/en/stable/django/first-steps-with-django.html

您的任务保持不变。

我使用安装了以下软件包的定期任务:

celery==4.4.7
kombu==4.6.10
django-celery-beat==1.4.0

INSTALLED_APP : 添加 'django_celery_beat',

示例:

from celery import shared_task
from django.utils.translation import gettext_lazy as _
from django.core.mail import mail_admins

@shared_task(longname=_("Send mail to administrators"))
def mail_admins_delayed(subject, message):
    mail_admins(subject, message)

从你的 django workdir 启动 celery

celery worker --app <djangoprojectname>
celery -A <djangoprojectname> beat