簡體   English   中英

Django Celery定期任務示例

[英]Django Celery periodic task example

我需要一個最低限度的示例來執行定期任務(每5分鍾運行一次功能,或在12:00:00運行某項,等等)。

在我的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添加了類似於下面的功能

from celery import task

@task
def test():
    return "test"

當我從shell運行test.delay()時,它成功運行並且還在花中顯示任務信息

要運行定期任務,您還應該運行芹菜節拍 您可以使用以下命令運行它:

celery -A proj beat

或者,如果您使用的是一名工人:

celery -A proj worker -B

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM