Django Celery定期任务示例

时间:2018-05-25 16:03:30

标签: python django celery

我需要一个最小的例子来执行周期性任务(每5分钟后运行一些功能,或者在12:00:00运行某些功能等。)

import { Component, ElementRef } from '@angular/core'; ... constructor(private elem: ElementRef){} let elements = this.elem.nativeElement.querySelectorAll('tr'); elements.forEach(element => { //TODO Conditional and action }); ,我有,

myapp/tasks.py

当我经营芹菜工人时,它确实显示了任务(如下所示),但不会返回任何值(在终端或花中)。

from celery.task.schedules import crontab
from celery.decorators import periodic_task
from celery import task


@periodic_task(run_every=(crontab(hour="*", minute=1)), name="run_every_1_minutes", ignore_result=True)
def return_5():
    return 5


@task
def test():
    return "test"

请提供最低限度的示例或提示以达到预期效果。

背景

我有[tasks] . mathematica.core.tasks.test . run_every_1_minutes ,其中包含以下内容:

config/celery.py

在我的import os from celery import Celery os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local") app = Celery('config') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() 中,我有

config/__init__.py

我在from .celery import app as celery_app __all__ = ['celery_app']

中添加了类似下面的函数
myapp/tasks.py

当我从shell运行from celery import task @task def test(): return "test" 时,它会成功运行,并在花中显示任务信息

1 个答案:

答案 0 :(得分:2)

要运行定期任务,您还应该运行celery beat。您可以使用以下命令运行它:

celery -A proj beat

或者如果您正在使用一名工人:

celery -A proj worker -B