class BatchKit::Database::Task

Records details of Task definitions

Public Class Methods

new(task_def) click to toggle source
Calls superclass method
# File lib/batch-kit/database/models.rb, line 228
def initialize(task_def)
    super(job_id: task_def.job.job_id, job_version: task_def.job.job_version,
          task_name: task_def.name, task_class: task_def.task_class.name,
          task_method: task_def.method_name.to_s, task_desc: task_def.description,
          task_run_count: 0, task_success_count: 0, task_fail_count: 0,
          task_abort_count: 0, task_min_success_duration_ms: 0,
          task_max_success_duration_ms: 0, task_mean_success_duration_ms: 0,
          task_m2_success_duration_ms: 0)
end
register(job_def) click to toggle source
# File lib/batch-kit/database/models.rb, line 212
def self.register(job_def)
    Task.where(job_id: job_def.job_id).update(task_current_flag: false)
    job_def.tasks.each do |task_key, task_def|
        task = self.where(job_id: job_def.job_id,
                          task_method: task_def.method_name.to_s).first
        if task
            task.update(task_name: task_def.name, task_class: task_def.task_class.name,
                        task_desc: task_def.description, task_current_flag: 'Y')
        else
            task = Task.new(task_def).save
        end
        task_def.task_id = task.task_id
    end
end

Public Instance Methods

task_abort(task_run) click to toggle source
# File lib/batch-kit/database/models.rb, line 267
def task_abort(task_run)
    self.task_abort_count += 1
    self.save
end
task_failure(task_run) click to toggle source
# File lib/batch-kit/database/models.rb, line 261
def task_failure(task_run)
    self.task_fail_count += 1
    self.save
end
task_start(task_run) click to toggle source
# File lib/batch-kit/database/models.rb, line 239
def task_start(task_run)
    self.task_last_run_at = task_run.start_time
    self.task_run_count += 1
    self.save
end
task_success(task_run) click to toggle source
# File lib/batch-kit/database/models.rb, line 246
def task_success(task_run)
    self.task_success_count += 1
    n = self.task_success_count
    ms = task_run.elapsed * 1000
    delta = ms - self.task_mean_success_duration_ms
    self.task_min_success_duration_ms = self.task_min_success_duration_ms == 0 ?
        ms : [self.task_min_success_duration_ms, ms].min
    self.task_max_success_duration_ms = self.task_max_success_duration_ms == 0 ?
        ms : [self.task_max_success_duration_ms, ms].max
    mean = self.task_mean_success_duration_ms += delta / n
    self.task_m2_success_duration_ms += delta * (ms - mean)
    self.save
end
task_timeout(task_run) click to toggle source
# File lib/batch-kit/database/models.rb, line 273
def task_timeout(task_run)
    self.task_abort_count += 1
    self.save
end