首页 > 解决方案 > 当我有大量工作时,延迟的工作会使用错误的数据执行

问题描述

我读了很多书,发现延迟作业实际上并没有使用序列化数据,而是使用反序列化的 id 检索信息。

这不是我选择该宝石时所期望的行为,但我可以处理它。真正的问题是,我使用 DJ 根据一些数据使用 after_save 回调触发一些警报,有时这些数据在未来会触发太多警报。所以基本上,如果我出于不同的原因保存了三次医疗结果,第三次最终确定它,我会发出三个警报,因为 DJ 对最终结果工作了三次。

是否存在一种方法可以将同一队列中的作业排入队列,只使用一次相同的方法?我看到处理程序没有公开并且handle_asyncronously不接受用于识别进程的参数。

最好的解决方案是直接处理序列化数据,但也可以执行一次。

先感谢您!

标签: ruby-on-railsrubyasynchronousdelayed-jobmedical

解决方案


推荐阅读