我被困在一个区域。我在MySQL数据库少数设备已经设置了不同的轮询间隔。作为一个例子,总的I有4个装置,其中2的用户希望在每5分钟间隔进行轮询,其他两种在10分钟时,和一个应在每7分钟被轮询。
我想建立一个Python的解决方案,它采用主从数据库的设备和他们的轮询间隔,然后开始连续投票对他们的定义轮询间隔这些设备。
正如我不能创建多个轮询脚本(每个),因为它会过度利用的CPU资源。如果设备的数量最多时达到1000,那么这将是一次轮询所有1000个问题。它更像是运行和监控设备保持监控解决方案。
我真的停留在这一点上。我会感激这个你的帮助。
生成一个工人每个间隔将做的工作。对于相同的代码看起来有点像这样:
from time import sleep
from multiprocessing import Process
intervals = [1, 2, 3] # hardcoding it to check, fetching it from db would be better
def generate_poll_worker(interval):
def poll_devices():
while True:
# fetch the devices and poll them
sleep(interval * 60)
return poll_devices
def worker_process(interval):
poll = generate_poll_worker(interval)
poll()
workers = []
for interval in intervals:
worker = Process(target=worker_process, args=(interval,))
worker.start()
workers.append(worker)
for worker in workers:
worker.join()