Sha256: 1344c6e16a9c565439087bef83ea81106b68e2bb73d6d335fd4327bd9208cb06
Contents?: true
Size: 818 Bytes
Versions: 2
Compression:
Stored size: 818 Bytes
Contents
module Datadog module Core 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 end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.10.1 | lib/datadog/core/workers/queue.rb |
ddtrace-1.10.0 | lib/datadog/core/workers/queue.rb |