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 语句。我想做的是每分钟执行该函数。知道问题是什么吗?
我认为在开始尝试之前您需要阅读更多内容。Celery 是一个分布式任务队列,这基本上意味着,它轮询队列以查看是否有任何任务需要运行。如果有,则运行该任务。
关于您的设置,您似乎有一个任务运行程序,但没有运行程序需要轮询以检查是否有任何任务要运行的队列。配置CELERY_BROKER_URL是关于该队列的。我建议你先阅读《Celery 的介绍文档》。尤其是“我需要什么?” 部分。
弄清楚队列部分后的注意事项
另外,我不确定如何运行和服务 django 应用程序,但 celery 需要单独的进程。对于这一部分,您需要浏览“芹菜的第一步”。
| 归档时间: |
|
| 查看次数: |
16568 次 |
| 最近记录: |