【发布时间】:2012-12-27 08:51:34
【问题描述】:
我有一个 python 程序,我想每 10 秒运行一次,就像 cron 作业一样。我不能在循环中使用睡眠,因为时间间隔会变得不确定。我现在的做法是这样的:
interval = 10.0
next = time.time()
while True:
now = time.time()
if now < next:
time.sleep(next - now)
t = Thread(target=control_lights,)
t.start()# start a thread
next += interval
它会生成一个执行 contro_lights 函数的新线程。问题是随着时间的推移,python 进程的数量会增长并占用内存/CPU。有什么好的方法可以做到这一点吗?非常感谢
【问题讨论】:
-
你为什么不让
cron这样做? -
@Blender:可能是因为
cron运行作业的频率不能超过每分钟一次。