【问题标题】:Cannot set PeriodicTask schedule无法设置 PeriodicTask 计划
【发布时间】:2020-05-29 07:38:01
【问题描述】:

我使用 Django Celery Beat 来管理周期性任务。

在这里,我创建了一个周期性任务并设置了一些时间表:

        new_instance = PeriodicTask.objects.create(
            name=f'L1 Synchonisation created at {timezone.now()}',
            task='integrations.tasks.test_task',
        )
        schedule, _ = IntervalSchedule.objects.get_or_create(
            every=self.every,
            period=self.period
        )
        new_instance.interval = schedule
        print(new_instance.interval)  # new_instance.interval is not None
        new_instance.save()
        print(new_instance.interval)  # None
        new_instance.refresh_from_db()
        print(new_instance.interval)  # None        

我的问题是,为什么new_instance.interval 会变成None,我该如何防止它这样做?

【问题讨论】:

    标签: django django-celery-beat


    【解决方案1】:

    事实证明,我无法更改PeriodicTask 的日程安排。只能在实例化PeriodicTask的同时设置:

            schedule, _ = IntervalSchedule.objects.get_or_create(
                every=self.every,
                period=self.period
            )
            new_instance = PeriodicTask.objects.create(
                name=f'L1 Synchonisation created at {timezone.now()}',
                task='integrations.tasks.test_task',
                interval=schedule,
            )
            print(new_instance.interval)  # new_instance.interval is not None
            new_instance.refresh_from_db()
            print(new_instance.interval)  # new_instance.interval is not None
    
    

    【讨论】:

      猜你喜欢
      • 2021-01-28
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2020-02-17
      相关资源
      最近更新 更多