我将以下设置与 Redis 代理和后端一起使用:
chord([A, A, A, ...])(B)
- 任务 A 进行一些检查。它
AbortableTask
用作基础并定期检查task.is_aborted()
标志。 - 任务 B 通知用户计算结果
用户可以中止 A 任务。不幸的是,当调用AbortableAsyncResult(task_a_id).abort()
所有任务 A 实例时,只有活动的实例被中止。工作人员尚未收到的任务的状态更改为ABORTED
,但它们仍在处理中并且is_aborted()
标志返回 False。
我当然可以revoke()
挂起任务而不是abort()
-ing 它们,但问题是在这种情况下,弦体(任务 B)不再执行。
如何停止所有挂起和正在运行的任务 A 实例,同时仍确保任务 B 运行?