Sha256: 1efca0eb8c45213c22bf3328768839e3918033f3222a5a2d5042bbe0d8818a63

Contents?: true

Size: 1.58 KB

Versions: 2

Compression:

Stored size: 1.58 KB

Contents

$: << File.expand_path('../lib', File.dirname(__FILE__))

require 'sneakers/runner'
require 'la_gear'
require 'la_gear/sneakers'

Sneakers.configure(
  logger: STDOUT,
  handler: LaGear::Sneakers::Handlers::ExponentialBackoff
)

# old way
class TestWorker
  include LaGear::Worker

  def perform(_); end
end

# new way
class TestWorker2
  include LaGear::Worker

  subscribes_to :test_worker

  def perform(_); end
end

# multiple keys
class TestWorker3
  include LaGear::Worker

  subscribes_to [:test_worker, :test_worker3]

  def perform(_); end
end

Sneakers.logger.level = Logger::INFO
bunny = Bunny.new
bunny.start
channel = bunny.channel
queue = channel.queue(
  TestWorker.default_queue_name,
  TestWorker.default_queue_opts.merge(durable: true, arguments: TestWorker.default_queue_args),
)
queue2 = channel.queue(
  TestWorker2.default_queue_name,
  TestWorker2.default_queue_opts.merge(durable: true, arguments: TestWorker2.default_queue_args),
)
queue3 = channel.queue(
  TestWorker3.default_queue_name,
  TestWorker3.default_queue_opts.merge(durable: true, arguments: TestWorker3.default_queue_args),
)
queue.purge
r = Sneakers::Runner.new([TestWorker, TestWorker2, TestWorker3])
pid = fork do
  r.run
end
Process.detach(pid)
LaGear::Publisher.new.publish(TestWorker.routing_key, ouch: 1)
LaGear::Publisher.new.publish(:test_worker3, ouch: 1)
sleep 3
puts 'killing...'
Process.kill('TERM', pid)
sleep 3
puts "test_worker message count #{queue.message_count}"
puts "test_worker2 message count #{queue2.message_count}"
puts "test_worker3 message count #{queue3.message_count}"
exit 1 if queue.message_count > 0

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
la_gear-1.6.0 examples/test_worker.rb
la_gear-1.5.0 examples/test_worker.rb