Background processing for ActiveRecord w/ a 'delayable' worker & a state_machine
Built in support for delayed_job or resque.
In your Gemfile:
In your model:
class Model < ActiveRecord::Base dalliance :process_method end
process_method is the name of the method to invoke for background processing to kick it off just call dalliance_background_process
Models can also be re-processed to allow front-end users to reprocess without needing to loop in PMs or developers:
class Model < ActiveRecord::Base dalliance :process_method, reprocess_method: :reprocessing_method end
Keep in mind that a record that has not already been completely processed (eg in a state of 'pending' or 'processing') cannot be reprocessed. Attempting to reprocess the record will raise an error.
Handle your migrations:
rails g dalliance:progress_meter rails g dalliance:update model_name
Create a method called dalliance_progress_meter_total_count (or provide the dalliance_progress_meter_total_count_method option)
Inside process_method call dalliance_progress_meter.increment! after each iteration
In your views you can then call dalliance_progress to get feedback on your asynchronous process
Copyright © 2012 Annkissam. See LICENSE for details.