ruby-on-rails - Sidekiq 更改参数或参数

标签 ruby-on-rails sidekiq

我一直在寻找这个问题的解决方案。我尝试用谷歌搜索,但还没有找到任何东西。

问题:

我有这个 worker

class MailWorker
  def perform(user_id)
    user = User.find(user_id)
    ...
  end
end

它已经运行了很长时间了。然后,需求发生变化,我们必须传递reservation_id而不是user_id。

因此工作人员更新为:

class MailWorker
  def perform(reservation_id)
    reservation = Reservation.find(reservation_id)
    ....
  end
end

问题是,如果我们推送此代码,一些工作人员已经在 Q 中。因此,这些工作人员将尝试查找用户,但新代码正在使用事务。

最好的方法是什么?我们是否必须创建新的 Worker 而不是使用现有的 Worker,并在安全后删除旧的 Worker?或者有什么办法可以解决这个问题吗?

谢谢

最佳答案

我个人会为此创建一个新的 Worker。

这使得处理所有工作变得更加容易。 (并且向后兼容)

关于ruby-on-rails - Sidekiq 更改参数或参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38325632/

相关文章:

ruby-on-rails - 如果失败,请重新启动 Sidekiq

ruby-on-rails - 配置多个服务器以支持sidekiq

ruby-on-rails - 从字符串中删除所有 a 标签

ruby-on-rails - ruby on rails 的邮件列表应用程序?

ruby-on-rails - Sidekiq 服务器进程如何从 Redis 中的队列中拉取作业?

ruby - 将重试的 sidekiq 作业放在队列的开头

ruby-on-rails - 您如何在 Sidekiq 中重新安排工作?

ruby-on-rails - ruby 将值添加到以逗号分隔的字符串,除了第一个元素

ruby-on-rails - 使数据库列可选或不需要,以便我可以创建记录

javascript - Ruby on Rails Partial 不会使用 AJAX 刷新,但表示它正在控制台中呈现部分