2

我想知道是否有一种异步运行任务的方法将在后台运行(例如使用 Celery),它永远不会同时运行?

这意味着,每个任务都可以与自己同时运行,但不能与干扰第一个任务操作的其他任务一起运行。
例如,

  • 任务 A:从文件中读取(可以与其自身同时运行(与其他从文件中读取的任务)
  • 任务 B:写入文件(不应与读取任务(与任务 A)同时运行)

本质上,我需要的是让任务 A 和 B 找出另一个任务是否正在运行以及是否正在运行的方法,然后自行延迟并等待它完成(可能会阻塞任务队列)

为任务定义队列是否可以解决问题?或者它只是一个用于执行任务的队列(因此​​它将执行队列中的第二个任务而不等待第一个任务的结果)?

在这里使用是我唯一的解决方案吗?

如果锁定解决方案是唯一的,那么正确的实现方法是什么?
我发现了这一点: 确保一次只执行一个任务
但它使用 django 的缓存作为锁,我没有在 django 环境中运行我的程序,所以它对我不起作用。

4

0 回答 0