Sha256: 752bde1d80aea05d9f7b917657b55aec46bfd07ea047629a147844ea08db2f82
Contents?: true
Size: 692 Bytes
Versions: 18
Compression:
Stored size: 692 Bytes
Contents
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.send(: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 def work_pending? !buffer.empty? end protected attr_writer \ :buffer end end end
Version data entries
18 entries across 18 versions & 2 rubygems