【问题标题】:Django. Simple Celery task not working姜戈。简单的芹菜任务不起作用
【发布时间】:2016-04-05 02:39:20
【问题描述】:

我是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

【问题讨论】:

  • 当你说“django localhost server”时,你是指你的芹菜工人吗?检查您的 celery worker 是否正在运行。

标签: django rabbitmq celery


【解决方案1】:

很可能你的芹菜工人没有运行,试试

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

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

【讨论】:

  • 谢谢你的回答,我今天无法测试。我明天再做。
  • 嘿伙计。你在哪里对,我的芹菜工人没有跑。但是现在它正在运行,但仍然无法正常工作。刚刚编辑了问题以添加该信息。
猜你喜欢
  • 2021-12-16
  • 2016-04-24
  • 1970-01-01
  • 2014-03-11
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
相关资源
最近更新 更多