Skip to content

Commit 826f69d

Browse files
committed
refa(active_job): store our stuff under single _sentry ivar
1 parent 2226905 commit 826f69d

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

sentry-rails/lib/sentry/rails/active_job.rb

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,19 @@ module ActiveJobExtensions
99

1010
USER_FIELDS_ALLOWLIST = %w[id email username].freeze
1111

12+
def self.prepended(base)
13+
base.attr_accessor :_sentry
14+
end
15+
1216
def perform_now
1317
if !Sentry.initialized? || already_supported_by_sentry_integration?
1418
super
1519
else
20+
data = _sentry || {}
1621
SentryReporter.record(
1722
self,
18-
trace_headers: @_sentry_trace_headers,
19-
user: @_sentry_user
23+
trace_headers: data["trace_propagation_headers"],
24+
user: data["user"]
2025
) { super }
2126
end
2227
end
@@ -53,11 +58,7 @@ def deserialize(job_data)
5358
return if !Sentry.initialized? || already_supported_by_sentry_integration?
5459

5560
begin
56-
sentry_data = job_data[SENTRY_PAYLOAD_KEY]
57-
return unless sentry_data
58-
59-
@_sentry_trace_headers = sentry_data["trace_propagation_headers"]
60-
@_sentry_user = sentry_data["user"]
61+
self._sentry = job_data[SENTRY_PAYLOAD_KEY]
6162
rescue StandardError => e
6263
Sentry.sdk_logger&.error("sentry-rails: failed to extract _sentry payload: #{e.class}: #{e.message}\n #{Array(e.backtrace).first(5).join("\n ")}")
6364
end

sentry-rails/spec/active_job/support/test_adapter_context.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ def drain(at: nil)
6464
# On 5.2 with Rails52FullPayloadTestAdapter, each payload also
6565
# carries a +:_sentry_full_payload+ key with the complete
6666
# serialize output. Drive those jobs through +Base.execute+ so
67-
# our deserialize override runs and populates
68-
# +@_sentry_trace_headers+ / +@_sentry_user+ before +perform_now+.
67+
# our deserialize override runs and populates +_sentry+
68+
# before +perform_now+.
6969
jobs = queue_adapter.enqueued_jobs.dup
7070
queue_adapter.enqueued_jobs.clear
7171
jobs.each do |payload|

0 commit comments

Comments
 (0)