J'ai un employé de sidekiq qui demandera une api tierce (Mailchimp) et obtiendra une réponse. Parfois, il répondra à un message d'erreur indiquant que l'api gem déclenchera une erreur.Comment éviter de réessayer pour une exception/erreur sur sidekiq
Cependant, ces erreurs sont normales et il n'est pas nécessaire de réessayer. Donc, j'aimerais que Sidekiq prévienne de réessayer lorsque ces erreurs sont soulevées.
J'ai essayé simplement rescue
, mais cela n'empêchera pas le sidekiq de capturer l'erreur déclenchée.
def preform(id)
UpdateMailchimpService.new.(id)
rescue
Mailchimp::ListInvalidBounceMemberError
end
Un moyen de le faire? Enfin trouvé Merci
Mise à jour
que mon problème a été causé par le cassé de notre outil de déploiement (déploiement échoué, mais pas réalisé). En fait, le Sidekiq ignorera toute erreur/exception sauvée et ils ne seront pas retentés et signalés à Bugsnag.
En Bugsnag's documentation, il dit clairement:
Bugsnag doit être installé et configuré, et sera automatiquement détecté des exceptions non gérées et devrait apparaître dans votre tableau de bord Bugsnag.
Ce post sur github n'avait pas une explication claire, c'est pourquoi je suis confus par cette question.
_ "cela n'empêchera pas le sidekiq de capturer l'erreur déclenchée" _ - que voulez-vous dire par là? – Stefan
@Stefan cela signifie que le sidekiq sait toujours que ce travail a causé une erreur 'ListInvalidBounceMemberError', et réessayera ce travail. – Stephen
@Stephen Votre exemple de code semble invalide. Pouvez-vous donner un exemple réel. Parce que 'rescue' empêche Sidekiq de réessayer. –