Rails 5.0.1,Ruby 2.4.0和Sidekiq 4.2.9。
我需要在后台作业中计算一些特定的数据。我已经通过Postgres实现了它,但我遇到了问题:Sidekiq并发会大量占用DB连接,如果我减少并发数,作业运行将需要很长时间。
我发现可以使用原子计数器,并在某个时期将结果保存到DB中。
那么我能在Sidekiq的线程之间共享变量吗?如果可以,我应该如何初始化共享变量?
感谢任何建议。
我需要在后台作业中计算一些特定的数据。我已经通过Postgres实现了它,但我遇到了问题:Sidekiq并发会大量占用DB连接,如果我减少并发数,作业运行将需要很长时间。
我发现可以使用原子计数器,并在某个时期将结果保存到DB中。
那么我能在Sidekiq的线程之间共享变量吗?如果可以,我应该如何初始化共享变量?
感谢任何建议。
Thread.get_thread_variable
,但这只适用于在单台机器(和单个进程)上运行 Sidekiq 的情况。 - undefined