No release in over a year
Add progress feature to delayed jobs
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

ProgressJobMongoid

This gem adds a couple of columns to delayed job table, and gives you a basic class for working with progress with support for delayed_job_mongoid.

Installation

Add this line to your application's Gemfile:

gem 'progress_job_mongoid'

And then execute:

$ bundle install

Run generator (run delayed job generators first):

$ rails generate progress_job_mongoid:install

Usage

Create a new class that extends ProgressJobMongoid::Base

class NewJob < ProgressJobMongoid::Base

  def perform
    # some actions
  end

end

Inside perform method you can use:

update_progress(step: 10) # default step is 1
update_stage('name of stage')
update_stage_progress('name of stage', step: 11)
update_progress_max(progress_max)

methods to update the job progress.

To create a new job use Delayed job enqueue method, and pass the progress_max value

$ job = Delayed::Job.enqueue NewJob.new(progress_max: 100) # default progress_max is 100

There is also a controller which returns the delayed job with calculated percentage

$ GET 'progress-jobs/:job_id/'