如何在沒有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中文網其他相關文章!