33import weakref
44
55from sentry_sdk .hub import Hub
6- from sentry_sdk .integrations import Integration , DidNotEnable
6+ from sentry_sdk .integrations import DidNotEnable , Integration
7+ from sentry_sdk .integrations .logging import ignore_logger
78from sentry_sdk .tracing import Transaction
89from sentry_sdk .utils import capture_internal_exceptions , event_from_exception
910
10-
1111try :
12- from rq .version import VERSION as RQ_VERSION
12+ from rq .queue import Queue
1313 from rq .timeouts import JobTimeoutException
14+ from rq .version import VERSION as RQ_VERSION
1415 from rq .worker import Worker
15- from rq .queue import Queue
1616except ImportError :
1717 raise DidNotEnable ("RQ not installed" )
1818
1919from sentry_sdk ._types import MYPY
2020
2121if MYPY :
22- from typing import Any
23- from typing import Dict
24- from typing import Callable
25-
26- from rq .job import Job
22+ from typing import Any , Callable , Dict
2723
28- from sentry_sdk .utils import ExcInfo
2924 from sentry_sdk ._types import EventProcessor
25+ from sentry_sdk .utils import ExcInfo
26+
27+ from rq .job import Job
3028
3129
3230class RqIntegration (Integration ):
@@ -89,7 +87,9 @@ def sentry_patched_perform_job(self, job, *args, **kwargs):
8987
9088 def sentry_patched_handle_exception (self , job , * exc_info , ** kwargs ):
9189 # type: (Worker, Any, *Any, **Any) -> Any
92- _capture_exception (exc_info ) # type: ignore
90+ if job .is_failed :
91+ _capture_exception (exc_info ) # type: ignore
92+
9393 return old_handle_exception (self , job , * exc_info , ** kwargs )
9494
9595 Worker .handle_exception = sentry_patched_handle_exception
@@ -108,6 +108,8 @@ def sentry_patched_enqueue_job(self, job, **kwargs):
108108
109109 Queue .enqueue_job = sentry_patched_enqueue_job
110110
111+ ignore_logger ("rq.worker" )
112+
111113
112114def _make_event_processor (weak_job ):
113115 # type: (Callable[[], Job]) -> EventProcessor
0 commit comments