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