2024-02-10 16:18:56 -06:00
|
|
|
Rails.application.configure do
|
|
|
|
config.good_job.enable_cron = true
|
2024-04-13 09:28:45 -04:00
|
|
|
|
|
|
|
if ENV["UPGRADES_ENABLED"] == "true"
|
|
|
|
config.good_job.cron = {
|
|
|
|
auto_upgrade: {
|
2024-12-12 15:14:54 -05:00
|
|
|
cron: "every 2 minutes",
|
2024-04-13 09:28:45 -04:00
|
|
|
class: "AutoUpgradeJob",
|
|
|
|
description: "Check for new versions of the app and upgrade if necessary"
|
|
|
|
}
|
2024-02-10 16:18:56 -06:00
|
|
|
}
|
2024-04-13 09:28:45 -04:00
|
|
|
end
|
2024-10-24 17:28:29 -04:00
|
|
|
|
2025-01-24 13:52:40 -05:00
|
|
|
config.good_job.on_thread_error = ->(exception) { Rails.error.report(exception) }
|
|
|
|
|
2025-01-24 13:39:08 -05:00
|
|
|
# 5 queue threads + 3 for job listener, cron, executor = 8 threads allocated
|
|
|
|
config.queues = {
|
|
|
|
"latency_low" => { max_threads: 1, priority: 10 }, # ~30s jobs
|
|
|
|
"latency_low,latency_medium" => { max_threads: 2, priority: 5 }, # ~1-2 min jobs
|
|
|
|
"latency_low,latency_medium,latency_high" => { max_threads: 1, priority: 1 }, # ~5+ min jobs
|
|
|
|
"*" => { max_threads: 1, priority: 0 } # fallback queue
|
|
|
|
}
|
|
|
|
|
2024-10-24 17:28:29 -04:00
|
|
|
# Auth for jobs admin dashboard
|
|
|
|
ActiveSupport.on_load(:good_job_application_controller) do
|
|
|
|
before_action do
|
2024-10-25 13:09:02 -05:00
|
|
|
raise ActionController::RoutingError.new("Not Found") unless current_user&.super_admin? || Rails.env.development?
|
2024-10-24 17:28:29 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def current_user
|
|
|
|
session = Session.find_by(id: cookies.signed[:session_token])
|
|
|
|
session&.user
|
|
|
|
end
|
|
|
|
end
|
2024-02-10 16:18:56 -06:00
|
|
|
end
|