Чтобы заставить ошибки ваших заданий отправляться из rq worker'а прямо в замечательную Sentry, в команде rq есть специальная опция --sentry-dsn. К сожалению, на практике выясняется, что она совсем не работает. Но почему?
В документации к rq указано, что необходимо использовать
(http://python-rq.org/patterns/sentry/)
Но, у rq в cli.py (command line interface) мы видим, что это не выполнено:
from rq.contrib.sentry import register_sentry
client = Client(sentry_dsn)
и не составит труда исправить на
from rq.contrib.sentry import register_sentry
from raven.transport.http import HTTPTransport
client = Client(sentry_dsn, transport=HTTPTransport )
Готово! Теперь ваши ошибки из rq workera отправятся прямо в Sentry при использовании в команде запуска rq из консоли опции "sentry-dsn".
Исправленный код можно взять на тут.
В документации к rq указано, что необходимо использовать
HTTPTransport
или RequestsHTTPTransport
в клиенте raven.from raven import Client
from raven.transport.http import HTTPTransport
from rq.contrib.sentry import register_sentry
client = Client('<YOUR_DSN>', transport=HTTPTransport)
register_sentry(client, worker)
(http://python-rq.org/patterns/sentry/)
Но, у rq в cli.py (command line interface) мы видим, что это не выполнено:
from rq.contrib.sentry import register_sentry
client = Client(sentry_dsn)
и не составит труда исправить на
from rq.contrib.sentry import register_sentry
from raven.transport.http import HTTPTransport
client = Client(sentry_dsn, transport=HTTPTransport )
Готово! Теперь ваши ошибки из rq workera отправятся прямо в Sentry при использовании в команде запуска rq из консоли опции "sentry-dsn".
Исправленный код можно взять на тут.