在芹菜中运行具有长延迟的任务工作流

2024-05-17 16:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Flask中构建一个webapp,用户可以在其中添加一个场景,其中包含要执行的任务工作流,这些任务在后台处理

用户可以添加场景,例如:

run task1, wait 1h, run task2, 
wait 5h, run task3, 
wait one day, run task4,
wait for some event, if event happend then run another task if not termiate, ... etc

所有的任务都是以前实现的芹菜任务,用户只需指定一个工作流并告知必须运行哪些函数。 我不确定芹菜是否是这种情况下的好技术。 我考虑在用户添加场景时向芹菜添加第一个任务。当任务成功时,它会将下一个任务添加到队列中,直到场景完成

我最担心的是:

  • 任务之间的长时间延迟(如果队列或工作进程崩溃/重新启动怎么办?)
  • 不确定等待事件是否容易实现
  • 不确定从一个任务运行另一个任务是否是一个好主意
  • 我认为这些工作流可能很难测试,可能需要运行docker compose和app、芹菜,并设法在任务之间进行小延迟的功能测试
  • 用户可能想要停止某个场景,这会有问题吗?似乎我需要存储芹菜任务id并将其从队列中删除
  • 有什么需要注意的地方吗

Tags: run用户eventflaskif队列场景one