Je cherche des solutions pour définir les options de planification de battements de céleri à une tâche pour inclure un rappel link_error.Battements de céleri ajouter la signature d'erreur de lien
Mon intention est d'enregistrer des exceptions dans mes tâches planifiées. Adding a link_error option semble être la voie à suivre. Cependant, je ne suis pas sûr de la façon dont je peux obtenir la signature de la tâche d'erreur dans mon fichier de paramètres.
Voici ma définition de gestionnaire erreur directement à partir de la documentation
@app.task(bind=True)
def error_handler(self, uuid):
result = self.app.AsyncResult(uuid)
logger.error('Task {0} raised exception: {1!r}\n{2!r}'.format(
uuid, result.result, result.traceback)
)
et mon erreur lancer la tâche
@app.task
def failme():
raise Exception()
Voici deux choses que je goûtés mon emploi du temps, mais cela ne fonctionne pas
'failme-every-10-se': {
'task': 'ep.tasks.failme',
'schedule': timedelta(seconds=5),
'options': {'link_error': 'ep.tasks.error_handler.s()'}
},
et
import error_handler
CELERYBEAT_SCHEDULE = {
'error-task-every-5-minutes': {
'task': 'failme',
'schedule': timedelta(minutes=5),
'options': {'link_error': error_handler.s()}
},
}
Merci
Si vous utilisez Django, avez-vous essayé avec 'shared_task' au lieu de' app.task'? –
En quoi cela changerait-il la signature de la définition de la tâche dans la configuration pour me rapprocher d'une solution? –