Sha256: f4fc781b4548955cc57a198c6a5eb2fcd65ca4756869f693261f20e84c308f89
Contents?: true
Size: 751 Bytes
Versions: 5
Compression:
Stored size: 751 Bytes
Contents
# typed: false module Datadog module Workers # Adds queue behavior to workers, with a buffer # to which items can be queued then dequeued. module Queue def self.included(base) base.prepend(PrependedMethods) end # Methods that must be prepended module PrependedMethods def perform(*args) super(*dequeue) if work_pending? end end def buffer @buffer ||= [] end def enqueue(*args) buffer.push(args) end def dequeue buffer.shift end # Are there more items to be processed next? def work_pending? !buffer.empty? end protected attr_writer \ :buffer end end end
Version data entries
5 entries across 5 versions & 1 rubygems