feat(snmp): 实现网络设备自动轮询定时任务
之前只有 arp/mac/interface_poll_interval 字段但没有实际调度, SNMP 设备添加后永远不会被自动采集。 新增 poll_snmp_devices Celery 定时任务: - 遍历所有活跃且配置了 SNMP 凭据的设备 - 按各设备的 poll_interval 判断是否到期,到期才轮询 - 用 asyncio.run 执行异步的 SNMPService.poll_device - Beat 每 60 秒触发检查,新设备 last_polled_at 为空会立即轮询
This commit is contained in:
@@ -32,6 +32,7 @@ scan_single_ip_task = _tasks['scan_single_ip_task']
|
||||
full_network_scan = _tasks['full_network_scan']
|
||||
update_all_statistics = _tasks['update_all_statistics']
|
||||
quick_status_update = _tasks['quick_status_update']
|
||||
poll_snmp_devices = _tasks['poll_snmp_devices']
|
||||
|
||||
# 定时任务配置
|
||||
celery_app.conf.beat_schedule = {
|
||||
@@ -52,4 +53,9 @@ celery_app.conf.beat_schedule = {
|
||||
'task': 'app.tasks.scan_tasks.update_all_statistics',
|
||||
'schedule': 900.0, # 15分钟
|
||||
},
|
||||
# 每60秒检查一次 SNMP 设备轮询(各设备按自己的 poll_interval 判断是否到期)
|
||||
'poll-snmp-devices-every-60s': {
|
||||
'task': 'app.tasks.scan_tasks.poll_snmp_devices',
|
||||
'schedule': 60.0,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user