0

我有一个相当复杂的缓存和失效设置,如果特定数据集发生更改,我需要重新计算大量数据。

基本上,如果一个特定条目发生变化,这可能会创建多达 15 个重新计算内容的工作。当这些作业正在运行时,可能会发生另一个主要条目发生变化。再次创造了几个工作岗位。(这可能同时发生)

我需要实现的是在作业运行后汇总结果。并且只进行一次这种聚合可能是有意义的。

所以我需要做的是运行一个工作,在所有其他工作完成后只运行一次。

(顺便说一句:我正在取消 BCCResqueuBundle)

4

1 回答 1

0

您可以使用引用计数器,并在需要时将其与锁结合使用。

参考计数器告诉异步工作人员的 nr。开始时递增,完成或失败时递减。

锁:有 1 个或多个异步工作者正在运行,或者聚合作业正在运行。如果您使用仔细的调度,则不需要锁。

于 2014-03-22T13:37:48.137 回答