towerops/lib/towerops/equipment
Graham McIntire 20f6a9171d
Add distributed coordination for SNMP polling
Prevents duplicate polling when multiple pods are running by using
database-based coordination.

Changes:
- Added last_snmp_poll_at timestamp to equipment table
- Added Equipment.update_snmp_poll_time/1 function
- Updated PollerWorker to check last_snmp_poll_at before polling
- Polls are skipped if equipment was polled within (interval - 5s)
- Updates timestamp before polling (optimistic locking)

This ensures that when K8s scales up/down or pods restart, only one
pod polls each piece of equipment at a time, preventing wasteful
duplicate SNMP queries and database writes.

The 5-second grace period accounts for clock drift and processing delays
between pods.
2026-01-04 13:28:06 -06:00
..
equipment.ex Add distributed coordination for SNMP polling 2026-01-04 13:28:06 -06:00