Module: LogStruct::Builders::ActiveJob

Extended by:
T::Sig
Defined in:
lib/log_struct/builders/active_job.rb

Class Method Summary collapse

Class Method Details

.enqueue(job) ⇒ Log::ActiveJob::Enqueue

Parameters:

  • job (T.untyped)

Returns:



31
32
33
34
35
36
37
38
39
40
# File 'lib/log_struct/builders/active_job.rb', line 31

def self.enqueue(job)
  Log::ActiveJob::Enqueue.new(
    job_id: job.job_id,
    job_class: job.class.to_s,
    queue_name: job.queue_name,
    arguments: safe_arguments(job),
    executions: safe_executions(job),
    provider_job_id: safe_provider_job_id(job)
  )
end

.finish(job, duration_ms:, finished_at:) ⇒ Log::ActiveJob::Finish

Parameters:

  • job (T.untyped)
  • duration_ms (Float)
  • finished_at (Time)

Returns:



70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/log_struct/builders/active_job.rb', line 70

def self.finish(job, duration_ms:, finished_at:)
  Log::ActiveJob::Finish.new(
    job_id: job.job_id,
    job_class: job.class.to_s,
    queue_name: job.queue_name,
    arguments: safe_arguments(job),
    executions: safe_executions(job),
    provider_job_id: safe_provider_job_id(job),
    duration_ms: duration_ms,
    finished_at: finished_at
  )
end

.safe_arguments(job) ⇒ Array<T.untyped>?

Parameters:

  • job (T.untyped)

Returns:

  • (Array<T.untyped>, nil)


25
26
27
28
# File 'lib/log_struct/builders/active_job.rb', line 25

def self.safe_arguments(job)
  return nil unless job.class.respond_to?(:log_arguments?)
  job.class.log_arguments? ? job.arguments : nil
end

.safe_executions(job) ⇒ Integer?

Parameters:

  • job (T.untyped)

Returns:

  • (Integer, nil)


20
21
22
# File 'lib/log_struct/builders/active_job.rb', line 20

def self.safe_executions(job)
  job.respond_to?(:executions) ? job.executions : nil
end

.safe_provider_job_id(job) ⇒ String?

Parameters:

  • job (T.untyped)

Returns:

  • (String, nil)


15
16
17
# File 'lib/log_struct/builders/active_job.rb', line 15

def self.safe_provider_job_id(job)
  job.respond_to?(:provider_job_id) ? job.provider_job_id : nil
end

.schedule(job, scheduled_at:) ⇒ Log::ActiveJob::Schedule

Parameters:

  • job (T.untyped)
  • scheduled_at (Time)

Returns:



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/log_struct/builders/active_job.rb', line 43

def self.schedule(job, scheduled_at:)
  Log::ActiveJob::Schedule.new(
    job_id: job.job_id,
    job_class: job.class.to_s,
    queue_name: job.queue_name,
    arguments: safe_arguments(job),
    executions: safe_executions(job),
    provider_job_id: safe_provider_job_id(job),
    scheduled_at: scheduled_at
  )
end

.start(job, started_at:, attempt:) ⇒ Log::ActiveJob::Start

Parameters:

  • job (T.untyped)
  • started_at (Time)
  • attempt (Integer, nil)

Returns:



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/log_struct/builders/active_job.rb', line 56

def self.start(job, started_at:, attempt:)
  Log::ActiveJob::Start.new(
    job_id: job.job_id,
    job_class: job.class.to_s,
    queue_name: job.queue_name,
    arguments: safe_arguments(job),
    executions: safe_executions(job),
    provider_job_id: safe_provider_job_id(job),
    started_at: started_at,
    attempt: attempt
  )
end