Celery task will not execute

Zor*_*gan 5 python django celery

I've followed the instruction process to installing and setting up celery, now I'm trying to execute my task. My project tree looks like this:

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

include
lib
Run Code Online (Sandbox Code Playgroud)

Here's my code:

settings.py

CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//' 
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

tasks.py

from celery import shared_task

@shared_task
def print_this():
    print('ONE MINUTE')
Run Code Online (Sandbox Code Playgroud)

app.views

print_this.delay()
Run Code Online (Sandbox Code Playgroud)

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

Gok*_*ari 2

我认为在开始尝试之前您需要阅读更多内容。Celery 是一个分布式任务队列,这基本上意味着,它轮询队列以查看是否有任何任务需要运行。如果有,则运行该任务。

关于您的设置,您似乎有一个任务运行程序,但没有运行程序需要轮询以检查是否有任何任务要运行的队列。配置CELERY_BROKER_URL是关于该队列的。我建议你先阅读《Celery 的介绍文档》。尤其是“我需要什么?” 部分。

弄清楚队列部分后的注意事项

另外,我不确定如何运行和服务 django 应用程序,但 celery 需要单独的进程。对于这一部分,您需要浏览“芹菜的第一步”。