我们使用 Sidekiq 来处理后台作业,比如这样:
def process_order(id)
... do something
end
Sidekiq 设置为 50-100 个线程,因此我们看到
process_order
同时在同一个 id
上运行,这是我们不希望的。确保 process_order
不会同时在同一个 id
上运行的最佳方法是什么?
我查看了https://ruby-concurrency.github.io/concurrent-ruby/master/Concurrent/Async.html但是这个例子不是很清楚(对于新手来说)。
您正在寻找独特的工作功能。 Sidekiq Enterprise 有它,并且有第 3 方插件也提供它。
50-100 个线程太多了。 Ruby 不能很好地扩展到那么多线程。