Django = 3.2 Celery = 4.3.0 (大黄) Redis = 3.5.3 windows 10
项目/芹菜.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'kunai.settings')
celery_app = Celery('kunai')
celery_app.config_from_object('django.conf.settings', namespace='CELERY')
celery_app.autodiscover_tasks()
@celery_app.task(bind=True)
def debug_task(self):
print(f'Request: {self.request!r}')
@celery_app.task(bind=True)
def greet_task(self):
print('hello World')
项目/初始化.py
from __future__ import absolute_import, unicode_literals
from .celery import celery_app
__all__ = ('celery_app',)
应用程序/任务.py
from celery import shared_task
from celery import app
from .track import track
celery = Celery('task', broker='redis://127.0.0.1:6379') #!
@shared_task(name="update_product_task")
def update_product_task():
track()
return True
@app.task(bind=True)
def product_task():
track()
return True
项目/settings.py
CELERY_RESULT_BACKEND = 'django-db'
CELERY_BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
芹菜输出屏幕
(venv) PS E:\DjangoProjects\kunai> celery -A kunai worker -l info -P gevent
-------------- celery@DESKTOP-6F61B0H v4.3.0 (rhubarb)
---- **** -----
--- * *** * -- Windows-10-10.0.19041-SP0 2021-05-09 00:03:02
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: kunai:0x2cbc1802490
- ** ---------- .> transport: redis://127.0.0.1:6379//
- ** ---------- .> results:
- *** --- * --- .> concurrency: 4 (gevent)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
[tasks]
. kunai.celery.debug_task
. kunai.celery.greet_task
[2021-05-09 00:03:02,857: INFO/MainProcess] Connected to redis://127.0.0.1:6379//
[2021-05-09 00:03:02,921: INFO/MainProcess] mingle: searching for neighbors
[2021-05-09 00:03:04,099: INFO/MainProcess] mingle: all alone
[2021-05-09 00:03:04,175: INFO/MainProcess] pidbox: Connected to redis://127.0.0.1:6379//.
[2021-05-09 00:03:04,206: INFO/MainProcess] celery@DESKTOP-6F61B0H ready.
我想将我的apps/task.py添加到任务队列中,但唯一注册的任务是proj/celery.py文件中存在的那些。
有人有解决这个问题的方法吗?