class Serially::TaskRun

Public Class Methods

finished_statuses() click to toggle source
# File lib/serially/task_run.rb, line 15
def self.finished_statuses
  [TaskRun.statuses[:finished_ok], TaskRun.statuses[:finished_error]]
end
write_task_run(task, item_id, success, result_msg, result_obj, error_handled) click to toggle source
# File lib/serially/task_run.rb, line 23
def self.write_task_run(task, item_id, success, result_msg, result_obj, error_handled)
  task_run = TaskRun.where(item_class: task.klass, item_id: item_id, task_name: task.name).first_or_initialize
  if task_run.finished?
    Resque.logger.warn("Serially: task '#{task.name}' for #{task.klass}/#{item_id} finished already, not saving this task run")
    false
  else
    saved = task_run.tap {|t|
      t.task_order = task.task_order
      t.status = success ? TaskRun.statuses[:finished_ok] : TaskRun.statuses[:finished_error]
      t.result_message = result_msg
      t.result_object = result_obj
      t.error_handled = error_handled
      t.finished_at = DateTime.now
    }.save
    saved
  end
end

Public Instance Methods

finished?() click to toggle source
# File lib/serially/task_run.rb, line 19
def finished?
  finished_ok? || finished_error?
end