module Legion::Extensions::Tasker::Runners::TaskManager

Public Instance Methods

expire_queued(age: 1, limit: 10, **) click to toggle source
# File lib/legion/extensions/tasker/runners/task_manager.rb, line 16
def expire_queued(age: 1, limit: 10, **) # rubocop:disable Lint/UnusedMethodArgument
  dataset = Legion::Data::Model::Task # rubocop:disable Lint/UselessAssignment
            .where(status: ['conditioner.queued', 'transformer.queued', 'task.queued'])
            .limit(limit)
end
purge_old(age: 31, limit: 100, status: 'task.completed', **_opts) click to toggle source
# File lib/legion/extensions/tasker/runners/task_manager.rb, line 6
def purge_old(age: 31, limit: 100, status: 'task.completed', **_opts)
  log.debug("purging old completed tasks with an age > #{age} days, limit: #{limit}")
  dataset = Legion::Data::Model::Task
            .where(Sequel.lit("created <= DATE_SUB(SYSDATE(), INTERVAL #{age} DAY)"))
            .limit(limit)
  dataset.where(status: status) unless ['*', nil, ''].include? status
  log.debug "Deleting #{dataset.count} records" if dataset.count.positive?
  dataset&.delete
end