lul*_*ala 14 ruby delayed-job ruby-on-rails-3 sidekiq
我目前使用延迟作业来异步处理作业.我没有创建工人,而是使用.delay了很多方法.
我想转移到Sidekiq,但是我有太多类型的工作,并且不能确保它们都是线程安全的.所以我想并行运行Delayed Job和Sidekiq,并一次迁移一种类型的作业.
由于Delayed Job和Sidekiq都提供了这种.delay方法,我如何区分这两者?还有其他潜在问题吗?
lul*_*ala 27
对于Sidekiq 2.17.1及更高版本,在Rails初始值设定项中的某处,请调用以下内容:
Sidekiq.hook_rails!
Sidekiq.remove_delay!
Run Code Online (Sandbox Code Playgroud)
你将只有前缀sidekiq_delay方法等等.
(官方文件)
对于较旧版本的Sidekiq:
把以下内容放入 config/initializers/sidekiq.rb
module Sidekiq::Extensions::Klass
alias :sidekiq_delay :delay
remove_method :delay
alias :sidekiq_delay_for :delay_for
remove_method :delay_for
alias :sidekiq_delay_until :delay_until
remove_method :delay_until
end
module Sidekiq::Extensions::ActiveRecord
alias :sidekiq_delay :delay
remove_method :delay
alias :sidekiq_delay_for :delay_for
remove_method :delay_for
alias :sidekiq_delay_until :delay_until
remove_method :delay_until
end
module Sidekiq::Extensions::ActionMailer
alias :sidekiq_delay :delay
remove_method :delay
alias :sidekiq_delay_for :delay_for
remove_method :delay_for
alias :sidekiq_delay_until :delay_until
remove_method :delay_until
end
Run Code Online (Sandbox Code Playgroud)
然后您可以使用sidekiq_delay在Sidekiq中排队,并delay在延迟作业中调用队列.
对于任何寻找此的人.我确实发现Sidekiq现在有一个开箱即用的设置.所有你需要做的就是添加Sidekiq.remove_delay!到config/initializers/sidekiq.rb
这在这里描述:https: //github.com/mperham/sidekiq/wiki/Delayed-Extensions
| 归档时间: |
|
| 查看次数: |
3959 次 |
| 最近记录: |