Module: Legion::Extensions::Tasker::Runners::TaskManager

Includes:
Helpers::Lex, Helpers::Task
Defined in:
lib/legion/extensions/tasker/runners/task_manager.rb

Instance Method Summary collapse

Instance Method Details

#expire_queued(age: 1, limit: 10) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/tasker/runners/task_manager.rb', line 19

def expire_queued(age: 1, limit: 10, **)
  cutoff = Time.now - (age * 3600)
  dataset = Legion::Data::Model::Task
            .where(status: ['conditioner.queued', 'transformer.queued', 'task.queued'])
            .where(Sequel.lit('created <= ?', cutoff))
            .limit(limit)
  count = dataset.update(status: 'task.expired')
  { success: true, expired: count }
end

#purge_old(age: 31, limit: 100, status: 'task.completed', **_opts) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/legion/extensions/tasker/runners/task_manager.rb', line 8

def purge_old(age: 31, limit: 100, status: 'task.completed', **_opts)
  log.debug("purging old completed tasks with an age > #{age} days, limit: #{limit}")
  cutoff = Time.now - (age * 86_400)
  dataset = Legion::Data::Model::Task
            .where(Sequel.lit('created <= ?', cutoff))
            .limit(limit)
  dataset = dataset.where(status: status) unless ['*', nil, ''].include?(status)
  log.debug "Deleting #{dataset.count} records" if dataset.any?
  dataset&.delete
end