dalliance

Background processing for ActiveRecord w/ a ‘delayable’ worker & a state_machine

Built in support for delayed_job or resque.

Getting Started

In your Gemfile:

gem "dalliance"

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

ProgressMeter

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.