Sha256: 6a77f8b514ff70100c1892472f043805511e6e4917498c81a5664c565c088366
Contents?: true
Size: 743 Bytes
Versions: 3
Compression:
Stored size: 743 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 # Are there more items to be processed next? def work_pending? !buffer.empty? end protected attr_writer \ :buffer end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.49.0 | lib/ddtrace/workers/queue.rb |
ddtrace-0.48.0 | lib/ddtrace/workers/queue.rb |
ddtrace-0.47.0 | lib/ddtrace/workers/queue.rb |