class BackgroundWorker::PersistentState

Attributes

completed[RW]
data[RW]
detailed_message[RW]
message[RW]
status[RW]

Public Class Methods

get_state_of(job_id) click to toggle source

Get a report out the queue (was .get_report, then .progress)

# File lib/background_worker/persistent_state.rb, line 35
def self.get_state_of(job_id)
  Rails.cache.read(job_id)
end
new(job_id, data) click to toggle source
# File lib/background_worker/persistent_state.rb, line 10
def initialize(job_id, data)
  @message = 'Waiting for task to queue...'
  @status = :processing
  @completed = false

  @job_id = job_id
  @data = data
  save
end

Public Instance Methods

save() click to toggle source

Save persistently (well for an hour at least)

# File lib/background_worker/persistent_state.rb, line 29
def save
  Rails.cache.write(@job_id, generate_persistent_hash, expires_in: 1.hour)
end
set_completed(message, status) click to toggle source
# File lib/background_worker/persistent_state.rb, line 20
def set_completed(message, status)
  self.status = status
  self.message = message

  self.completed = true
  save
end

Private Instance Methods

generate_persistent_hash() click to toggle source

Generate a hash of this objects state

(representing this status progress report)
# File lib/background_worker/persistent_state.rb, line 43
def generate_persistent_hash
  {
    message: message,
    detailed_message: detailed_message,
    status: status,
    completed: completed,
    data: data
  }
end