Ruby on rails Sidekiq更改参数或参数

Ruby on rails Sidekiq更改参数或参数,ruby-on-rails,sidekiq,Ruby On Rails,Sidekiq,我一直在寻找解决这个问题的办法。我已经试着用谷歌搜索了一下,但还没有找到任何东西 问题: 我有一个工人 class MailWorker def perform(user_id) user = User.find(user_id) ... end end 这已经持续了相当长的一段时间。然后,在需求变更时,我们必须传递预订id而不是用户id 因此,工人更新为: class MailWorker def perform(reservation_id) reser

我一直在寻找解决这个问题的办法。我已经试着用谷歌搜索了一下,但还没有找到任何东西

问题:

我有一个工人

class MailWorker
  def perform(user_id)
    user = User.find(user_id)
    ...
  end
end
这已经持续了相当长的一段时间。然后,在需求变更时,我们必须传递预订id而不是用户id

因此,工人更新为:

class MailWorker
  def perform(reservation_id)
    reservation = Reservation.find(reservation_id)
    ....
  end
end
问题是,如果我们推送此代码,一些工作人员已经在Q中。因此,这些工作人员将尝试查找用户,但新代码正在使用事务

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


谢谢

我将亲自为此创建一名新员工

这使得处理所有作业更容易。并且是向后兼容的