我希望有一台服务器和一个功能来检查网络中的所有计算机。我想在固定的时间段内定期调用计算机功能检查。所以我想使用' select'包括服务器和功能。是否允许将一个函数传递给select作为参数,或者我只允许将列表传递给select?
你有什么建议我每5秒左右调用一次函数?
答案 0 :(得分:4)
尝试实现自己的线程,每隔五秒调用一次传递函数。
from threading import *
import time
def my_function():
print 'Running ...' # replace
class EventSchedule(Thread):
def __init__(self, function):
self.running = False
self.function = function
super(EventSchedule, self).__init__()
def start(self):
self.running = True
super(EventSchedule, self).start()
def run(self):
while self.running:
self.function() # call function
time.sleep(5) # wait 5 secs
def stop(self):
self.running = False
thread = EventSchedule(my_function) # pass function
thread.start() # start thread
答案 1 :(得分:-1)
只需使用threading.Timer
import threading
def check_func():
# other stuff
threading.Timer(5.0, check_func).start() # run check_func after 5s
check_func()
这是在python中执行定期作业的标准方法。