我正在使用django构建一个报告门户。在此门户网站中,我需要让用户能够安排报告在重复发生的基础上运行。我一直在研究django-celery,并明白你可以使用periodic_task修饰器来安排一个重复的任务,但在所有的例子中,我看到cron的日程表信息被硬编码到修饰器中。根据用户输入使用django-celery安排任务
@periodic_task(run_every=crontab(hours=7, minute=30, day_of_week="mon"))
有没有一种方法可以使用django-celery根据用户的输入动态地安排一个重复的任务?
例如,用户使用表单来选择他们想要运行的报表,提供报表所需的所有参数以及他们希望报表运行时的计划。一旦我处理完了表单,我可以调用哪个方法或函数来将run_report任务添加到计划中?如果有,是否有办法检索存储在数据库中的所有当前日程表以便显示它们?
或者,您可以安排一个任务,然后调度下一个任务,依此类推...... – DanJ
如果创建一个内部函数并将'@ periodic_task'装饰器与动态创建的'crontab'对象一起应用,会怎么样?我有同样的问题,也许这会有所帮助? –
我有完全相同的问题。任何有关你如何解决它的信息? – Jannis