Django celery击败了没有同时运行多个时钟任务的人。还有其他出路吗?

时间:2019-07-22 23:58:56

标签: celery django-celery celerybeat

我想动态添加要在特定时间运行的任务(计时任务)。我正在使用django芹菜拍子。我面临的问题是,芹菜只执行一项任务,而忽略其余任务。

我尝试了以下代码,并在库中搜索到django-celery-beat一旦执行了计时任务便禁用了计划。这可能是其他/下一个任务未运行的原因。

我在做什么错?和

安排多个任务同时运行的替代方法是什么?

clocked, _ = ClockedSchedule.objects.get_or_create(
    clocked_time=next_run_time
)

PeriodicTask.objects.create(
    clocked=clocked,
    name=guid1,
    one_off=True,
    task="schedulerapp.jobscheduler.runEvent",
    args=json.dumps([guid1])
)

PeriodicTask.objects.create(
    clocked=clocked,
    name=guid2,
    one_off=True,
    task="schedulerapp.jobscheduler.runEvent",
    args=json.dumps([guid2])
)

1 个答案:

答案 0 :(得分:0)

这应该有效。

from django_celery_beat.models import PeriodicTask, IntervalSchedule

schedule = IntervalSchedule.objects.create(every=10, period=IntervalSchedule.SECONDS)
task = PeriodicTask.objects.create(interval=schedule, name=guid1, task='schedulerapp.jobscheduler.runEvent', args=json.dumps([guid1]))