Sha256: 486ef7a86507da272b48d1f84b4b1a903b1eaa8eb11031416a1a50cb7e6ed134
Contents?: true
Size: 1.1 KB
Versions: 14
Compression:
Stored size: 1.1 KB
Contents
# encoding: utf-8 # This file is distributed under New Relic's license terms. # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details. class TestWorker include Sidekiq::Worker sidekiq_options :queue => SidekiqServer.instance.queue_name @jobs = {} @jobs_mutex = Mutex.new @done = Queue.new def self.register_signal(key) return if @registered_signal NewRelic::Agent.subscribe(:transaction_finished) do |payload| @done.push(true) end @registered_signal = true end def self.run_jobs(count) reset(count) count.times do |i| yield i end wait end def self.reset(done_at) @jobs = {} @done_at = done_at end def self.record(key, val) @jobs_mutex.synchronize do @jobs[key] ||= [] @jobs[key] << val end end def self.records_for(key) @jobs[key] end def self.wait # Don't hang out forever, but shouldn't count on the timeout functionally Timeout.timeout(60) do @done_at.times do @done.pop end end end def perform(key, val) TestWorker.record(key, val) end end
Version data entries
14 entries across 14 versions & 1 rubygems