abstract class Mosquito::DequeueAdapter

Overview

A DequeueAdapter determines how the Overseer selects the next job to execute from the available queues.

Subclass DequeueAdapter, implement #dequeue, and assign an instance via Mosquito.configure:

class MyDequeueAdapter < Mosquito::DequeueAdapter
  def dequeue(queue_list : Mosquito::Runners::QueueList) : Tuple(Mosquito::JobRun, Mosquito::Queue)?
    queue_list.queues.each do |q|
      if job_run = q.dequeue
        return {job_run, q}
      end
    end
  end
end

Mosquito.configure do |settings|
  settings.dequeue_adapter = MyDequeueAdapter.new
end

Direct Known Subclasses

Defined in:

mosquito/dequeue_adapter.cr

Instance Method Summary

Instance Method Detail

abstract def dequeue(queue_list : Runners::QueueList) : Tuple(JobRun, Queue) | Nil #

Attempt to dequeue a job from one of the queues managed by queue_list.

Returns a tuple of {JobRun, Queue} when a job is available, or nil when all queues are empty.