gpt4 book ai didi

python - Django celery - 在前一个实例完成的设定持续时间后启动周期性任务

转载 作者:行者123 更新时间:2023-12-05 07:55:42 25 4
gpt4 key购买 nike

目前我有一个每 30 分钟运行一次的周期性任务。任务本身有时需要 30 多分钟才能完成。

如何更改周期性任务在上次运行完成后 运行 30 分钟?

@periodic_task(run_every=timedelta(minutes=30), queue='activities', options={'queue': 'activities'})
def pull_activities_frequent_adaptors():
adaptors_queryset = TrackingAppAdaptor.objects.adaptors_that_pull_activities_frequently()
pull_activities_from_adaptors(adaptors_queryset)

最佳答案

很抱歉,您不能完全那样做。

由于有多个工作人员执行作业,您实际上需要确保没有工作人员正在运行上一个任务。

你可以做什么:

  1. 使用 celery backend您可以监视是否还有正在进行的任务并且不执行当前任务。这将允许您创建一种只执行一个任务的情况。

  2. 当一个任务完成后,您可以创建一个触发器来发送一个等待 30 分钟的新任务,您可以使用 ETA 来实现它。

关于python - Django celery - 在前一个实例完成的设定持续时间后启动周期性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29459207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com