如何通过模型实例控制sidekiq上的并发?

时间:2015-05-10 01:42:52

标签: ruby-on-rails sidekiq

我有一个客户模型和一个消息模型,我正在使用Sidekiq做很多事情。

每当我收到一条新消息时,我会生成一个记录该消息信息的工作者,然后更新Customer上的几个列。

我遇到的问题是,如果我一次收到大量新消息,请说其中10封,所有10条消息都会根据客户的状态尝试更新客户工人读客户。这导致了奇怪的问题。例如,每当客户离开州“关闭”时,我都需要增加一个计数器。打开'。所有10条消息同时产生并读取客户关闭'然后所有10条消息都会触发客户从关闭更改为打开,即使只有第一条消息应该触发该状态更改。所有其他消息都不应该做任何事情,因为客户已经开放。

处理这种情况的正确方法是什么?

有没有办法指定如果客户不同,sidekiq只使用并发性?

1 个答案:

答案 0 :(得分:0)

阅读ActiveRecord乐观和悲观锁定。