Skip Phoenix poller/monitor scheduling when SNMP disabled
JobCleanupTask was scheduling poller and monitor jobs for all SNMP-enabled devices on every startup without checking phoenix_snmp_disabled. These jobs would immediately bail out but still consumed queue capacity. JobHealthCheckWorker had the same issue - recovering 'missing' monitor jobs that would just no-op. Both now check Client.phoenix_snmp_disabled() before scheduling.
This commit is contained in:
parent
ee478a4817
commit
78aa415073
3 changed files with 21 additions and 6 deletions
|
|
@ -1 +1 @@
|
|||
/nix/store/zx636v118rzzqzwafgrw2aybh7l0szrl-pre-commit-config.json
|
||||
/nix/store/4xlkmdd947h5qlhj2rmbyavq08grkz27-pre-commit-config.json
|
||||
|
|
@ -13,6 +13,7 @@ defmodule Towerops.Workers.JobCleanupTask do
|
|||
|
||||
alias Towerops.Devices
|
||||
alias Towerops.Repo
|
||||
alias Towerops.Snmp.Client
|
||||
alias Towerops.Workers.DeviceMonitorWorker
|
||||
alias Towerops.Workers.DevicePollerWorker
|
||||
|
||||
|
|
@ -64,6 +65,15 @@ defmodule Towerops.Workers.JobCleanupTask do
|
|||
end
|
||||
|
||||
defp reschedule_all_devices do
|
||||
if Client.phoenix_snmp_disabled() do
|
||||
Logger.info("JobCleanupTask: Phoenix SNMP polling is disabled, skipping job rescheduling")
|
||||
:ok
|
||||
else
|
||||
do_reschedule_all_devices()
|
||||
end
|
||||
end
|
||||
|
||||
defp do_reschedule_all_devices do
|
||||
# Get all devices with SNMP enabled
|
||||
devices =
|
||||
Repo.all(
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ defmodule Towerops.Workers.JobHealthCheckWorker do
|
|||
|
||||
alias Towerops.Devices
|
||||
alias Towerops.Repo
|
||||
alias Towerops.Snmp.Client
|
||||
alias Towerops.Workers.DeviceMonitorWorker
|
||||
|
||||
require Logger
|
||||
|
|
@ -25,12 +26,16 @@ defmodule Towerops.Workers.JobHealthCheckWorker do
|
|||
@impl Oban.Worker
|
||||
@spec perform(Oban.Job.t()) :: :ok
|
||||
def perform(%Oban.Job{}) do
|
||||
monitor_recoveries = recover_missing_monitor_jobs()
|
||||
|
||||
if monitor_recoveries > 0 do
|
||||
Logger.warning("Job health check recovered #{monitor_recoveries} missing monitor job(s)")
|
||||
if Client.phoenix_snmp_disabled() do
|
||||
Logger.debug("Job health check skipped: Phoenix SNMP polling is disabled")
|
||||
else
|
||||
Logger.debug("Job health check completed: all jobs healthy")
|
||||
monitor_recoveries = recover_missing_monitor_jobs()
|
||||
|
||||
if monitor_recoveries > 0 do
|
||||
Logger.warning("Job health check recovered #{monitor_recoveries} missing monitor job(s)")
|
||||
else
|
||||
Logger.debug("Job health check completed: all jobs healthy")
|
||||
end
|
||||
end
|
||||
|
||||
:ok
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue