姜戈。简单的芹菜任务不起作用

Django. Simple Celery task not working

我是 Celery 的新手。我有一个任务没有完成,我不知道为什么。我正在使用 rabbitmq 这是我的代码:

在settings.py中:

BROKER_URL = "amqp://guest@localhost//"

tasks.py:

from celery.decorators import task
from celery.utils.log import get_task_logger
from hisoka.models import FeralSpirit, Fireball

logger = get_task_logger(__name__)

@task
def test_task():
    fireball = Fireball.objects.last()
    feral_spirit = FeralSpirit.objects.filter(fireball=fireball).last()

    counters = feral_spirit.increase_counter()

    logger.info(feral_spirit + "counters: " + counters)

该任务只是一个测试,旨在增加一个计数器,该计数器是FeralSpirit模型的一个领域。如果我不使用 delay()

调用该函数,它将正常工作

views.py

class FireballDetail(ListView):

    def get_queryset(self, *args, **kwargs):
        test_task.delay()

        ...

我在一个终端上有一个 rabbitmq 服务器 运行 正确(或至少看起来像那样),在另一个终端上有 django localhost 服务器。我错过了一些明显的东西吗?我有一个 celery.py 和一个修改过的 __init__ 文件,紧跟在 documentation.

之后

很可能你的 celery worker 不是 运行,试试

celery  -A {project_name} worker --loglevel=info -Q {queue_name}

替换project_name和queue_name的值。默认 queue_name 是 default