【发布时间】: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 是否正在运行。