99m*_*les 6 ruby-on-rails sidekiq
我正在尝试使用 sidekiq-unique-jobs 但老实说无法让它做任何它应该做的事情。我试图使同一作业无法多次排队(虽然它已经在队列中或正在运行),但正如您在此处看到的,我启动了具有相同 ID 的工人 3 次,并且每次都运行。
Rails 5.2.1 Sidekiq 6.0.6
有任何想法吗?
这是工人:
class RefreshLoginWorker
include Sidekiq::Worker
include Sidekiq::Status::Worker
sidekiq_options queue: 'credentials', :retry => false, lock: :until_executed
def perform item_id
sleep 5
end
end
Run Code Online (Sandbox Code Playgroud)
在这里,我们一个接一个地开始一些工作:
irb(main):016:0> RefreshLoginWorker.perform_async 20
=> "4e83f7a419b9aa047860af77"
irb(main):017:0> RefreshLoginWorker.perform_async 20
=> "682776c2fb45866f35cbf87f"
irb(main):018:0> RefreshLoginWorker.perform_async 20
=> "962dc0bae18cfc4ede6aea18"
Run Code Online (Sandbox Code Playgroud)
Sidekiq 日志:
2020-07-18T17:30:48.468Z pid=561643 tid=gpbejyaar class=RefreshLoginWorker jid=4e83f7a419b9aa047860af77 INFO: start
2020-07-18T17:30:49.060Z pid=561643 tid=gpbejy9vf class=RefreshLoginWorker jid=682776c2fb45866f35cbf87f INFO: start
2020-07-18T17:30:53.469Z pid=561643 tid=gpbejyaar class=RefreshLoginWorker jid=4e83f7a419b9aa047860af77 elapsed=5.001 INFO: done
2020-07-18T17:30:53.470Z pid=561643 tid=gpbejyaar class=RefreshLoginWorker jid=962dc0bae18cfc4ede6aea18 INFO: start
2020-07-18T17:30:54.061Z pid=561643 tid=gpbejy9vf class=RefreshLoginWorker jid=682776c2fb45866f35cbf87f elapsed=5.001 INFO: done
2020-07-18T17:30:58.471Z pid=561643 tid=gpbejyaar class=RefreshLoginWorker jid=962dc0bae18cfc4ede6aea18 elapsed=5.001 INFO: done
Run Code Online (Sandbox Code Playgroud)
先用gem 'sidekiq-unique-jobs'后用bundle。安装后,您应该启用 sidekiq-unique-jobs SidekiqUniqueJobs.config.enabled。欲了解更多详情,请关注sidekiq-unique-jobs
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |