Attualmente sto lavorando con le attività di Celery in un progetto basato su Django. Abbiamo il corvo configurato per inviare tutte le eccezioni non rilevate e registrare i messaggi su Sentry, come descritto nello documentation.Le attività di Celery non vengono inviate a Sentry con le eccezioni
Tutto funziona piuttosto bene, ad eccezione delle eccezioni non rilevate all'interno dei compiti di sedano. Per esempio, se ho eseguito questo compito:
@app.task
def test_logging():
log.error('Testing logging inside a task')
raise IndexError('Testing exception inside a task')
vedo solo nel Sentry la log.error(...)
ma non il IndexError
eccezione non rilevata. Ho provato a utilizzare un blocco try-except
attorno all'eccezione con un log.exception(...)
interno e ha funzionato, ma penso che non sia scalabile per catturare tutte le eccezioni come questa.
Quindi, il problema sono solo eccezioni non rilevate che in qualche modo non vengono gestite correttamente.
Queste sono le mie versioni dei pacchetti attuali:
celery (3.1.17)
raven (5.1.1)
Django (1.7.1)
Vuoi aiutarmi a muoversi in una certa direzione?
Grazie per il vostro tempo!
hai già provato http://raven.readthedocs.org/en/latest/integrations/celery.html e http://docs.celeryproject.org/en/latest/configuration.html#celeryd-hijack-root -logger? – DRC
Grazie a DRC, finalmente la soluzione utilizzando 'register_signal (client)' ha funzionato, e ora vediamo le eccezioni non rilevate registrate correttamente in Sentry. Saluti! –
contento che abbia aiutato. – DRC