簡體   English   中英

如何在 django 中只運行一次 celery 任務?

[英]how can I run celery task only once in django?

from __future__ import absolute_import, unicode_literals

from celery import shared_task
from celery.task import periodic_task
from celery.schedules import crontab
from datetime import timedelta



@periodic_task(run_every=(crontab(minute='*/1')), name='greeting_task')
def greeting_task():
    print('hello Dias!')

我可以使用 crontab 創建一個在特定時間只運行一次的 function 嗎? 請幫忙!!! 提前致謝!

如果您使用的是Django-Celery-Beat ,它可以使用ClockedSchedule model 創建在特定日期/時間僅運行一次的任務。 由於某種原因,它不在文檔中,但您可以通過 Django 管理員輕松配置它。

您需要更改crontab的參數。

示例:如果您希望任務在每天凌晨 5 點運行一次:

@periodic_task(run_every=(crontab(minute='0', hour='5')), name='greeting_task')
def greeting_task():
    print('hello Dias!')

crontab(minute='*/1')將每分鍾運行一次任務。 在此處閱讀有關 crontab 語法的信息: https://en.wikipedia.org/wiki/Cron

暫無
暫無

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

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