RapidJob
RapidJob is a RabbitMQ-backed Ruby library for processing background jobs.
It's not complete yet!
Any class can include Rapid::Job.
class MyJob include Rapid::Job retry_count 5 retry_delays [10, 20, 30, 40, 50] def self.fail puts end def to_json '{}' end def self.from_json json_message new end def f s puts "hey hey hey, f is called: #{s}" end def self.g puts 'hey hey hey, g is called' end def self.h a, b puts "h is called with a: #{a}, b: #{b}" end end
Then it's functions can be called in background:
mg = MyJob.new mg.rapid.f "Salaam" MyJob.rapid.g MyJob.rapid.mission(g: nil, h: [1, 2])
To pop messages from MQ and run:
rake rapid:worker QUEUE=my_job