设置.py
# celery
CELERY_TIMEZONE = "UTC"
CELERY_BROKER_URL = "redis://127.0.0.1:6379"
CELERY_ACCEPT_CONTENT = ["application/json"]
CELERY_RESULT_SERIALIZER = "json"
CELERY_TASK_SERIALIZER = "json"
CELERY_RESULT_BACKEND = "django-db"
# celery-beat
CELERY_BEAT_SCHEDULER = "django-celery-beat.schedulers:DatabaseScheduler"
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"rest_framework",
"rest_framework_simplejwt",
"corsheaders",
"celery",
"django_celery_results",
"django_celery_beat",
# Custom apps
...
]
所以我想运行我的 celery-beat: celery -A 配置节拍 -l INFO 其中 config 是我的项目名称
然后我收到错误消息: ModuleNotFoundError:没有名为“django-celery-beat”的模块
芹菜.py
"clear_spent_in_categories_every_month": {
"task": "category.tasks.clear_all_spent",
# "schedule": crontab(day_of_month="1", hour="0", minute="0")
"schedule": crontab(hour="4", minute="40")
}
}```
I tried to restart my IDE, server, reinstall celery, checked my INSTALLED_APPS, and I don't know, why it doesn't work. But if I delete setting CELERY_BEAT_SCHEDULER = "django-celery-beat.schedulers:DatabaseScheduler", it's works with celery.beat.PersistentScheduler
它适用于我使用下划线而不是连字符: CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"