对于在定义的日期时间之后开始的定期任务,是否有一种参数化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回答,但我希望用户将执行时间定义为小时,分钟和工作日作为定期任务