芹菜任务不会执行

时间:2017-09-26 10:17:50

标签: python django celery

我已经关注了instruction process to installing and setting up celery,现在我正在尝试执行我的任务。我的项目树看起来像这样:

bin
draft1--
        |
         -------draft1 ----
                           |
                            --------celery.py
                            --------tasks.py
                            --------views.py
         -------manage.py
         -------templates

include
lib

这是我的代码:

settings.py

CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//' 

celery.py

import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')

app = Celery('app')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

tasks.py

from celery import shared_task

@shared_task
def print_this():
    print('ONE MINUTE')

app.views

print_this.delay()

所以我的celery函数不起作用,它不执行print语句。我想做的是每分钟执行一次这个功能。知道问题是什么吗?

1 个答案:

答案 0 :(得分:1)

我认为在开始实验之前你需要阅读更多内容。 Celery是一个分布式任务队列,它的基本含义是,它轮询一个队列以查看是否有任何需要运行的任务。如果有,它就会运行任务。

关于您的设置,您似乎有一个任务运行器,但不是跑步者需要轮询的队列,以检查是否有任何要运行的任务。配置CELERY_BROKER_URL与该队列有关。我建议你先阅读"Celery's Introduction documents"。特别是"What do I need?"部分。

在您计算出队列部分后的注意事项

另外,我不知道你如何运行和服务你的django应用程序,但芹菜需要单独的进程。对于该部分,您需要浏览"First Steps with Celery"