$worker_test_count = 0 $worker_success = false class TestPlainJob def self.queue; "test-plain"; end def self.perform(x, y); $worker_test_count += x + y + 1; end end class TestJob include Backburner::Queue queue_priority :medium queue_respond_timeout 300 def self.perform(x, y); $worker_test_count += x + y; end end class TestSlowJob include Backburner::Queue queue_priority :medium queue_respond_timeout 300 def self.perform(x, y); sleep 1; $worker_test_count += x + y; end end class TestStuckJob include Backburner::Queue queue_priority :medium queue_respond_timeout 300 def self.perform(_x, _y) loop do sleep 0.5 end end end class TestFailJob include Backburner::Queue def self.perform(x, y); raise RuntimeError; end end class TestRetryJob include Backburner::Queue def self.perform(x, y) $worker_test_count += 1 raise RuntimeError unless $worker_test_count > 2 $worker_success = true end end class TestConfigurableRetryJob include Backburner::Queue def self.perform(retry_count) $worker_test_count += 1 raise RuntimeError unless $worker_test_count > retry_count $worker_success = true end end class TestRetryWithQueueOverridesJob include Backburner::Queue def self.perform(retry_count) $worker_test_count += 1 raise RuntimeError unless $worker_test_count > retry_count $worker_success = true end def self.queue_max_job_retries 3 end def self.queue_retry_delay 0 end def self.queue_retry_delay_proc lambda { |min_retry_delay, num_retries| min_retry_delay + (num_retries ** 2) } end end class TestAsyncJob include Backburner::Performable def self.foo(x, y); $worker_test_count = x * y; end end class TestLambdaQueueJob include Backburner::Queue queue lambda { |klass| klass.calculated_queue_name } def self.calculated_queue_name; 'lambda-queue' end end