class Hawkei::Plugins::Sidekiq::ServerMiddleware

Hawkei Plugins Sidekiq Server Middleware

Server middleware for sidekiq

Public Instance Methods

call(_worker, job, _queue) { || ... } click to toggle source
# File lib/hawkei/plugins/sidekiq/server_middleware.rb, line 11
def call(_worker, job, _queue)
  Hawkei::Store.bulk_set(
    session_tracker_id: job[Hawkei::Const::SESSION_TRACKER_ID] || SecureRandom.uuid,
    server_software: "Sidekiq #{::Sidekiq::VERSION}",
    auto_id: job[Hawkei::Const::FOLLOW],
  )

  store_worker_data(job)

  yield
ensure
  Hawkei::Store.clear!
end

Private Instance Methods

convert_to_iso8601(int_time) click to toggle source
# File lib/hawkei/plugins/sidekiq/server_middleware.rb, line 44
def convert_to_iso8601(int_time)
  Time.at(int_time).utc.iso8601(3)
rescue StandardError => _e
  nil
end
store_worker_data(job) click to toggle source
# File lib/hawkei/plugins/sidekiq/server_middleware.rb, line 27
def store_worker_data(job)
  Hawkei::Store.set(
    :worker,
    name: 'sidekiq',
    version: ::Sidekiq::VERSION,
    queue: job['queue'],
    class: job['class'],
    id: job['jid'],
    created_at: convert_to_iso8601(job['created_at']),
    process_at: convert_to_iso8601(job['enqueued_at']),
    args: job['args'],
    retried: job['retry_count'].is_a?(Integer),
    retry_number: job['retry_count'],
    failed_at: convert_to_iso8601(job['failed_at'])
  )
end