gpt4 book ai didi

ruby - 同时运行延迟作业和 Sidekiq

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:28 25 4
gpt4 key购买 nike

我目前使用延迟作业来异步处理作业。我没有创建 worker,而是经常使用 .delay 方法。

我想转到 Sidekiq,但是我的工作类型太多,无法确保所有工作都是线程安全的。所以我想并行运行 Delayed Job 和 Sidekiq,并一次迁移一种类型的作业。

既然Delayed Job和Sidekiq都提供了.delay方法,那么如何区分两者呢?还有其他潜在问题吗?

最佳答案

对于 Sidekiq 2.17.1 及更高版本,在 Rails 初始化程序的某处,调用以下命令:

Sidekiq.hook_rails!
Sidekiq.remove_delay!

并且您将只有 sidekiq_delay 方法等前缀。

( official document )


对于旧版本的 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

然后可以在Sidekiq中使用sidekiq_delay进行排队,在Delayed Job中调用delay进行排队。

关于ruby - 同时运行延迟作业和 Sidekiq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com