Sha256: d57c4255f983527ee07fabbd9e2fdcf8581191fb8c26b1d2f82bf7b8c00b72db
Contents?: true
Size: 1.26 KB
Versions: 4
Compression:
Stored size: 1.26 KB
Contents
# typed: false require 'ddtrace/workers/async' require 'ddtrace/workers/loop' module Datadog module Workers # Adds polling (async looping) behavior to workers module Polling SHUTDOWN_TIMEOUT = 1 def self.included(base) base.include(Workers::IntervalLoop) base.include(Workers::Async::Thread) base.prepend(PrependedMethods) end # Methods that must be prepended module PrependedMethods def perform(*args) super if enabled? end end def stop(force_stop = false, timeout = SHUTDOWN_TIMEOUT) if running? # Attempt graceful stop and wait stop_loop graceful = join(timeout) if !graceful && force_stop Datadog.logger.debug do "Timeout while waiting for worker to finish gracefully, forcing termination for: #{self}" end terminate else graceful end else false end end def enabled? return true unless instance_variable_defined?(:@enabled) @enabled end # Allow worker to be started def enabled=(value) # Coerce to boolean @enabled = (value == true) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.54.1 | lib/ddtrace/workers/polling.rb |
ddtrace-0.54.0 | lib/ddtrace/workers/polling.rb |
ddtrace-0.53.0 | lib/ddtrace/workers/polling.rb |
ddtrace-0.52.0 | lib/ddtrace/workers/polling.rb |