Celery Beat 如何计算 datetime.now() 和下一个计划的周期性任务 django 之间的差异

Celery Beat how to calculate difference between datetime.now() and the next scheduled Periodic Task django

我为每周的第 3 天设置了 celery beat cron 计划。 在 django shell 我可以访问这个时间表:

    >>> schedule = PeriodicTask.objects.get(name="Bulk Newsletter Send")
    which results in:
    >>> <PeriodicTask: Bulk Newsletter Send: * * * * 3 (m/h/dM/MY/d) UTC>

我的问题是,如何计算 datetime.now() 和下一个 PeriodicTask 之间的天数差异?

这是我要 运行 使用的解决方案:

源自 Celery 文档 celery.schedules

periodic_task = PeriodicTask.objects.get(name="my_task")

time_to_go = periodic_task.schedule.is_due(datetime.now())

time_to_go.next = time to next run in seconds