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

Version Path
newrelic_rpm-3.11.2.286 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.11.1.284 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.11.0.283 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.10.0.279 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.9.275 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.8.273 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.7.266 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.6.257 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.5.251 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.4.245 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.3.241 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.2.239 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.1.236 test/multiverse/suites/sidekiq/test_worker.rb
newrelic_rpm-3.9.0.229 test/multiverse/suites/sidekiq/test_worker.rb