credo fixes
This commit is contained in:
parent
5e2a3c229e
commit
5096ea2669
54 changed files with 55 additions and 55 deletions
|
|
@ -197,8 +197,8 @@
|
|||
[custom_assertion_functions: [:assert_has, :refute_has, :assert_eventually]]},
|
||||
{Jump.CredoChecks.TooManyAssertions, [max_assertions: 20]},
|
||||
{Jump.CredoChecks.TopLevelAliasImportRequire},
|
||||
{Jump.CredoChecks.UnusedLiveViewAssign, [ignored_assigns: [:active_path, :current_scope, :current_token]]}
|
||||
# {Jump.CredoChecks.UseObanProWorker},
|
||||
{Jump.CredoChecks.UnusedLiveViewAssign, [ignored_assigns: [:active_path, :current_scope, :current_token]]},
|
||||
{Jump.CredoChecks.UseObanProWorker}
|
||||
# {Jump.CredoChecks.VacuousTest,
|
||||
# [
|
||||
# ignore_setup_only_tests?: false,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ defmodule Towerops.Snmp.NeighborCleanupWorker do
|
|||
|
||||
Runs hourly via Oban.Plugins.Cron (configured in application config).
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Devices
|
||||
alias Towerops.Snmp
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ defmodule Towerops.Workers.AgentLatencyEvaluator do
|
|||
are never affected. All reassignments use device-level assignments to avoid
|
||||
changing site/org defaults.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Agents
|
||||
alias Towerops.Agents.Stats
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Towerops.Workers.AgentReleaseWebhookWorker do
|
|||
webhook controller can ACK the CI sender immediately.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :default, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 3
|
||||
|
||||
alias Towerops.Agents
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ defmodule Towerops.Workers.AiNetworkInsightWorker do
|
|||
swallowed per-org so one bad org doesn't poison the run.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ defmodule Towerops.Workers.AlertDigestWorker do
|
|||
and enqueues individual delivery jobs
|
||||
- Delivery mode (specific user_id): sends the actual digest to that user
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :notifications,
|
||||
max_attempts: 3
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.AlertNotificationWorker do
|
|||
Handles trigger, acknowledge, and resolve notifications with automatic
|
||||
retries and error tracking.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :notifications,
|
||||
max_attempts: 3,
|
||||
priority: 1
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.BackupSummaryWorker do
|
|||
were any failed or timed-out backup requests in the past 24 hours.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 1
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 1
|
||||
|
||||
alias Towerops.Devices.BackupRequests
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ defmodule Towerops.Workers.BackupTimeoutWorker do
|
|||
from accumulating stale entries.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 1
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 1
|
||||
|
||||
alias Towerops.Devices.BackupRequests
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.BillingSyncWorker do
|
|||
Runs at 3 AM UTC daily via Oban cron.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
alias Towerops.Billing
|
||||
alias Towerops.Organizations
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ defmodule Towerops.Workers.CapacityInsightWorker do
|
|||
Auto-resolves insights when utilization drops below 70%.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ defmodule Towerops.Workers.CheckExecutorWorker do
|
|||
# accumulate without bound. `:executing` is deliberately excluded: perform/1
|
||||
# self-schedules the next run while the current job is still executing, and
|
||||
# including it would make that reschedule conflict with itself.
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :check_executors,
|
||||
max_attempts: 3,
|
||||
unique: [
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.CheckWorker do
|
|||
Follows same self-scheduling pattern as DeviceMonitorWorker.
|
||||
Phoenix executes checks unless assigned to an agent (agent_token_id set).
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :checks,
|
||||
unique: [
|
||||
period: 60,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ defmodule Towerops.Workers.CloudLatencyProbeWorker do
|
|||
Each cloud agent receives a list of devices to ping (5 pings per device).
|
||||
Results flow back through the existing MonitoringCheck pipeline.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Agents
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.CloudflareBanWorker do
|
|||
Runs in the :maintenance queue with up to 3 retry attempts.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
alias Towerops.Security.CloudflareClient
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Towerops.Workers.CnMaestroSyncWorker do
|
|||
|
||||
Same pattern as UispSyncWorker: cron dispatcher + staggered individual jobs.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.CnMaestro.Sync
|
||||
alias Towerops.Integrations
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ defmodule Towerops.Workers.CoverageWorker do
|
|||
# max_attempts: 1 — `fail/2` returns :ok and writes the failure onto the
|
||||
# coverage row itself, so there's nothing for Oban to retry. The previous
|
||||
# max_attempts: 3 implied retries that never actually happened.
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :coverage,
|
||||
max_attempts: 1,
|
||||
unique: [
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ defmodule Towerops.Workers.DataRetentionWorker do
|
|||
|
||||
TimescaleDB global retention (730 days) acts as a safety net.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Repo
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.DeviceHealthInsightWorker do
|
|||
Runs nightly to detect:
|
||||
- `device_poll_gap`: Devices not polled in over 24 hours
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.DeviceMonitorWorker do
|
|||
runs cluster-wide. Monitors check device connectivity and create alerts
|
||||
on status changes.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :monitors,
|
||||
max_attempts: 1,
|
||||
unique: [
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ defmodule Towerops.Workers.DevicePollerWorker do
|
|||
Uses Oban's unique job feature to ensure only one poller per device
|
||||
runs cluster-wide. Poll interval is configurable per device (default: 60 seconds).
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :pollers,
|
||||
max_attempts: 1,
|
||||
unique: [
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ defmodule Towerops.Workers.DiscoveryWorker do
|
|||
If no agent is assigned or the agent is offline, discovery falls back to direct
|
||||
SNMP operations from the Phoenix cluster.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :discovery,
|
||||
unique: [period: 60, states: [:available, :scheduled, :executing, :suspended, :retryable]],
|
||||
max_attempts: 3
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ defmodule Towerops.Workers.EscalationCheckWorker do
|
|||
Oban worker that checks if an on-call incident needs to escalate
|
||||
to the next rule after the timeout period.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :notifications,
|
||||
max_attempts: 3,
|
||||
priority: 1
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.ExpiredBanCleanupWorker do
|
|||
Permanent bans (nil `banned_until`) are not affected.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Security.BruteForce
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.FirmwareVersionFetcherWorker do
|
|||
Runs daily to check for new firmware releases and updates the firmware_releases table.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 10
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 10
|
||||
|
||||
import SweetXml
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.GaiiaInsightWorker do
|
|||
Runs nightly to detect:
|
||||
- `reconciliation_finding`: Untracked devices, ghost devices, data mismatches
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
use Gettext, backend: ToweropsWeb.Gettext
|
||||
|
||||
import Ecto.Query
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.GaiiaSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Gaiia.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Gaiia.Sync
|
||||
alias Towerops.Integrations
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Towerops.Workers.GaiiaWebhookWorker do
|
|||
the webhook sender immediately.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :default, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 3
|
||||
|
||||
alias Towerops.Gaiia.Webhooks
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ defmodule Towerops.Workers.InsightExpiryWorker do
|
|||
max_age_days: 14
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ defmodule Towerops.Workers.InsightLlmEnrichmentWorker do
|
|||
in the UI, just without a plain-language summary.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
alias Towerops.LLM
|
||||
alias Towerops.LLM.InsightPrompt
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.JobHealthCheckWorker do
|
|||
This handles edge cases where jobs might get cancelled unexpectedly or database
|
||||
inconsistencies occur during deployments or pod failures.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.LidarCatalogSyncWorker do
|
|||
Runs monthly via cron. Discovers Texas LIDAR projects on USGS 3DEP and
|
||||
upserts tile metadata into `lidar_tiles`. Does not download raster data.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :lidar,
|
||||
unique: [period: 86_400, states: [:available, :scheduled, :executing, :suspended, :retryable]]
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ defmodule Towerops.Workers.LoginHistoryCleanupWorker do
|
|||
|
||||
This worker runs daily at 2 AM via Oban cron.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ defmodule Towerops.Workers.MikrotikBackupWorker do
|
|||
- Are assigned to an agent
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
alias Towerops.Devices
|
||||
alias Towerops.Devices.BackupRequests
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ defmodule Towerops.Workers.MikrotikWebhookWorker do
|
|||
later.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :default, max_attempts: 5
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 5
|
||||
|
||||
alias Towerops.Mikrotik
|
||||
alias Towerops.Mikrotik.GaiiaResolver
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ defmodule Towerops.Workers.MsBuildingsImportWorker do
|
|||
we hash the geometry's bounding box so re-running with the same
|
||||
data is a no-op.
|
||||
"""
|
||||
use Oban.Worker, queue: :default, max_attempts: 1
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 1
|
||||
|
||||
alias Towerops.Coverages.Building
|
||||
alias Towerops.Repo
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.NetBoxSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `NetBox.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.NetBox.Sync
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Towerops.Workers.PagerdutyWebhookWorker do
|
|||
the webhook sender immediately.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :default, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 3
|
||||
|
||||
alias Towerops.Alerts
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ defmodule Towerops.Workers.PreseemBaselineWorker do
|
|||
Nightly Oban cron worker that computes device baselines and fleet profiles
|
||||
for all organizations with enabled Preseem integrations.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Preseem.Baseline
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ defmodule Towerops.Workers.PreseemSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Preseem.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Preseem.Sync
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.RecommendationsRunWorker do
|
|||
`evaluate(organization_id) :: [insight_attrs]`.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :maintenance, max_attempts: 3
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.ReportWorker do
|
|||
The cron dispatcher (no args) runs hourly and checks which reports are due.
|
||||
Individual jobs receive `%{"report_id" => id}` and generate + email the report.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Reports
|
||||
alias Towerops.Reports.Notifier
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ defmodule Towerops.Workers.SessionCleanupWorker do
|
|||
Deletes browser sessions that have passed their expiration timestamp.
|
||||
This worker runs daily at 3 AM via Oban cron.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Accounts
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.SonarSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Sonar.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Sonar.Sync
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.SplynxSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Splynx.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Splynx.Sync
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ defmodule Towerops.Workers.StaleAgentWorker do
|
|||
- They have checked in at least once (last_seen_at is not nil)
|
||||
- They haven't checked in for more than 10 minutes
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.StaleViolationCleanupWorker do
|
|||
Permanent bans are retained indefinitely for audit purposes.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Security.BruteForce
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Towerops.Workers.StripeWebhookWorker do
|
|||
the webhook sender immediately.
|
||||
"""
|
||||
|
||||
use Oban.Worker, queue: :default, max_attempts: 3
|
||||
use Oban.Pro.Worker, queue: :default, max_attempts: 3
|
||||
|
||||
alias Towerops.Billing.WebhookProcessor
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ defmodule Towerops.Workers.SystemInsightWorker do
|
|||
- `agent_offline`: Agents not seen in over 10 minutes
|
||||
- Auto-resolves agent_offline insights when agents come back online
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ defmodule Towerops.Workers.UispSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Uisp.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Uisp.Sync
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ defmodule Towerops.Workers.VispSyncWorker do
|
|||
Individual jobs receive `%{"integration_id" => id}` and perform the
|
||||
actual sync via `Visp.Sync.sync_organization/1`.
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
alias Towerops.Integrations
|
||||
alias Towerops.Visp.Sync
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ defmodule Towerops.Workers.WeatherSyncWorker do
|
|||
|
||||
Also cleans up observations older than 30 days on each run.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :weather,
|
||||
unique: [period: 600, states: [:available, :scheduled, :executing, :suspended, :retryable]]
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ defmodule Towerops.Workers.WelcomeEmailWorker do
|
|||
@moduledoc """
|
||||
Sends a welcome email to new users a few minutes after registration.
|
||||
"""
|
||||
use Oban.Worker,
|
||||
use Oban.Pro.Worker,
|
||||
queue: :notifications,
|
||||
max_attempts: 3
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ defmodule Towerops.Workers.WirelessInsightWorker do
|
|||
|
||||
Auto-resolves insights when conditions improve (with hysteresis to prevent flapping).
|
||||
"""
|
||||
use Oban.Worker, queue: :maintenance
|
||||
use Oban.Pro.Worker, queue: :maintenance
|
||||
|
||||
import Ecto.Query
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue