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