如何在芹菜周期性任务中参数化crontabschedule?

时间:2016-07-01 11:35:46

标签: python django celery django-celery

对于在定义的日期时间之后开始的定期任务,是否有一种参数化django celery crontab计划值的方法?

让我们说django上的用户可以使用特定的日期时间保存任务,该日期时间从工作日开始,必须每周执行一次。

tasks.py

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

@periodic_task(ignore_result=True, run_every=crontab(minute=0,hour=0,day_of_week='saturday'))  # every minute
def just_print():
    print "Print from celery task"

models.py

class Task(models.Model):
    start_time = models.TimeField()        
    weekday= models.CharField()
    start = models.DateTimeField()

    def __unicode__(self):
        return "%s %s" % (self.start_time, self.start)

    def save(self, *args, **kwargs):
       just_print.run_every=crontab(minute=self.start_time.minute,hour=self.start_time.hour,day_of_week=self.weekday) # << Something like this 
just_print.apply_async(eta=(start))

我已阅读this回答,但我希望用户将执行时间定义为小时,分钟和工作日作为定期任务

0 个答案:

没有答案