2 votes

Sidekiq change les paramètres ou l'argument

J'ai cherché la solution à ce problème. J'ai essayé de la chercher sur Google, mais je n'ai rien trouvé pour l'instant.

Problème :

J'ai ce travailleur

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

qui a fonctionné pendant un certain temps. Et puis, changement d'exigence, nous devons passer le reservation_id au lieu du user_id.

Le travailleur a donc fait une mise à jour :

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

Le problème est que si nous poussons ce code, certains des travailleurs sont déjà dans Q. Donc, ces travailleurs vont essayer de trouver l'utilisateur mais le nouveau code utilise Transaction.

Quelle est la meilleure approche pour cela ? Devons-nous créer un nouveau travailleur au lieu d'utiliser celui qui existe déjà et supprimer l'ancien une fois que nous sommes en sécurité ? Ou y a-t-il un moyen de gérer cela ?

Merci

4voto

siegy22 Points 3074

Je créerais personnellement un nouveau travailleur pour cela.

Il est ainsi plus facile de gérer tous les emplois. (et est rétrocompatible)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X