Class: Serially::Job
- Inherits:
-
Object
- Object
- Serially::Job
- Extended by:
- Resque::Plugins::LonelyJob
- Defined in:
- lib/serially/job.rb
Class Method Summary collapse
- .enqueue(item_class, item_id, enqueue_to = nil) ⇒ Object
- .perform(item_class, item_id) ⇒ Object
- .queue ⇒ Object
-
.redis_key(item_class, item_id, *args) ⇒ Object
this ensures that for item_class=Invoice, and item_id=34500, only one job will run at a time.
Class Method Details
.enqueue(item_class, item_id, enqueue_to = nil) ⇒ Object
28 29 30 |
# File 'lib/serially/job.rb', line 28 def self.enqueue(item_class, item_id, enqueue_to = nil) Resque.enqueue_to(enqueue_to || self.queue, Serially::Job, item_class.to_s, item_id) end |
.perform(item_class, item_id) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/serially/job.rb', line 20 def self.perform(item_class, item_id) Resque.logger.info("Serially: starting running tasks for #{item_class}/#{item_id}...") item_class = item_class.constantize if item_class.is_a?(String) writer = TaskRunWriter.new if item_class.is_active_record? result_str = TaskRunner.new(writer).run!(item_class, item_id) Resque.logger.info(result_str) end |
.queue ⇒ Object
11 12 13 |
# File 'lib/serially/job.rb', line 11 def self.queue Serially::GlobalOptions.default_queue end |
.redis_key(item_class, item_id, *args) ⇒ Object
this ensures that for item_class=Invoice, and item_id=34500, only one job will run at a time
16 17 18 |
# File 'lib/serially/job.rb', line 16 def self.redis_key(item_class, item_id, *args) "serially:#{item_class}_#{item_id}" end |