Module: Yabeda::Faktory

Defined in:
lib/yabeda/faktory.rb,
lib/yabeda/faktory/version.rb,
lib/yabeda/faktory/client_middleware.rb,
lib/yabeda/faktory/worker_middleware.rb

Defined Under Namespace

Classes: ClientMiddleware, Error, WorkerMiddleware

Constant Summary collapse

JOB_ENQUEUE_TIME_BUCKETS =
[
  0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10 # standard (from Prometheus)
].freeze
LONG_RUNNING_JOB_RUNTIME_BUCKETS =
[
  0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, # standard (from Prometheus)
  30, 60, 120, 300, 1800, 3600, 21_600 # Faktory jobs may be very long-running
].freeze
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.labelize(payload) ⇒ Object



60
61
62
# File 'lib/yabeda/faktory.rb', line 60

def labelize(payload)
  { queue: payload["queue"], worker: worker_class(payload) }
end

.worker_class(payload) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
# File 'lib/yabeda/faktory.rb', line 64

def worker_class(payload)
  worker = payload["jobtype"]

  if defined?(ActiveJob::QueueAdapters::FaktoryAdapter::JobWrapper)
    if worker.is_a?(ActiveJob::QueueAdapters::FaktoryAdapter::JobWrapper) || worker == "ActiveJob::QueueAdapters::FaktoryAdapter::JobWrapper"
      return payload.dig("custom", "wrapped").to_s
    end
  end

  worker.to_s
end