0

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文件中存在的那些。

有人有解决这个问题的方法吗?

4

0 回答 0