module Delayed::Heartbeat

Constants

VERSION

Attributes

configuration[R]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/delayed/heartbeat.rb, line 17
def configure
  yield(configuration) if block_given?
end
delete_timed_out_workers(timeout_seconds = configuration.heartbeat_timeout_seconds) click to toggle source
# File lib/delayed/heartbeat.rb, line 28
def delete_timed_out_workers(timeout_seconds = configuration.heartbeat_timeout_seconds)
  dead_workers = Delayed::Heartbeat::Worker.dead_workers(timeout_seconds)
  cleanup_workers(dead_workers, mark_attempt_failed: true)
end
delete_workers_with_different_version(current_version = configuration.worker_version) click to toggle source
# File lib/delayed/heartbeat.rb, line 23
def delete_workers_with_different_version(current_version = configuration.worker_version)
  old_workers = Delayed::Heartbeat::Worker.workers_with_different_version(current_version)
  cleanup_workers(old_workers, mark_attempt_failed: false)
end

Private Class Methods

cleanup_workers(workers, mark_attempt_failed: true) click to toggle source
# File lib/delayed/heartbeat.rb, line 35
def cleanup_workers(workers, mark_attempt_failed: true)
  Delayed::Heartbeat::Worker.transaction do
    worker_job_map = workers.each_with_object(Hash.new) do |worker, result|
      result[worker] = worker.unlock_jobs(mark_attempt_failed: mark_attempt_failed)
    end
    Delayed::Heartbeat::Worker.delete_workers(workers)
    Delayed::Heartbeat::DeleteWorkerResults.new(worker_job_map)
  end
end