class ForemanResourceQuota::Engine

Public Class Methods

register_scheduled_task(task_class, cronline) click to toggle source

Helper to register ForemanTasks

# File lib/foreman_resource_quota/engine.rb, line 75
def self.register_scheduled_task(task_class, cronline)
  return if ::ForemanTasks::RecurringLogic.joins(:tasks)
                                          .merge(::ForemanTasks::Task.where(label: task_class.name))
                                          .exists?
  ::ForemanTasks::RecurringLogic.transaction(isolation: :serializable) do
    User.as_anonymous_admin do
      recurring_logic = ::ForemanTasks::RecurringLogic.new_from_cronline(cronline)
      recurring_logic.save!
      recurring_logic.start(task_class)
    end
  end
rescue ActiveRecord::TransactionIsolationError => e
  Rails.logger.warn "ForemanResourceQuota: skipping RecurringLogic registration hook (#{e})"
end