我有一个定期任务,计划每10分钟运行一次。有时此任务在2-3分钟内完成,有时需要20分钟。
如果之前的任务还没有完成,有没有办法使用芹菜节拍来不打开任务?我在间隔设置中看不到它的选项。
发布于 2019-08-04 17:36:39
不,芹菜节拍对运行任务一无所知。
实现你正在尝试做的事情的一种方法是将任务与自身联系起来。例如,async_apply()有可选的参数link和link_error,它们可以用来提供一个签名(也可以是单个任务),以便在任务成功完成(链接)或未成功完成(link_error)时运行。
我使用的是以下方法--我安排任务频繁运行(比如每5分钟运行一次),并使用分布式锁来确保我始终只有一个任务实例在运行。
最后提醒一下-您可以始终实现自己的调度器,并在您的节拍配置中使用它。我曾经想过为了你想要的完全一样的东西做这件事,但是我决定我已经有的解决方案对我来说已经足够好了。
发布于 2019-11-10 19:08:48
你可以试试this,它为你的任务提供了一个单例基类。
https://stackoverflow.com/questions/57334468
复制相似问题