如何在没有 Cron 的情况下重复执行函数
Python 爱好者经常面临以指定时间间隔永久执行函数而不需要复杂的 cron 设置。一种简单的方法是利用简单的 while 循环。
while True: # Code executed here time.sleep(60)
此代码似乎旨在每 60 秒连续执行一个函数。然而,这种方法存在潜在的陷阱。由于循环不断运行,存在资源耗尽的风险,导致性能下降或系统崩溃。
要优雅地解决这些问题,请考虑使用事件调度程序,例如 Python 中的 sched 模块。
import sched, time def do_something(scheduler): # schedule the next call first scheduler.enter(60, 1, do_something, (scheduler,)) print("Doing stuff...") # then do your stuff my_scheduler = sched.scheduler(time.time, time.sleep) my_scheduler.enter(60, 1, do_something, (my_scheduler,)) my_scheduler.run()
sched 模块可以通过对任务执行时间的复杂控制来调度任务。在这种情况下,do_something() 充当回调函数,每 60 秒重新安排一次并同时执行预期任务。这种机制确保函数按照指定的时间间隔连续执行,而不会妨碍程序的响应能力。
从本质上讲,利用事件调度程序为 Python 中重复执行函数提供了一种更健壮且资源高效的解决方案,而不受 while 的限制循环。
以上是如何在不出现 Cron 作业或资源耗尽的情况下重复执行 Python 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!