首頁 > 後端開發 > Python教學 > 如何在不出現 Cron 作業或資源耗盡的情況下重複執行 Python 函數?

如何在不出現 Cron 作業或資源耗盡的情況下重複執行 Python 函數?

Patricia Arquette
發布: 2024-12-18 21:36:18
原創
310 人瀏覽過

How to Repeatedly Execute a Python Function Without a Cron Job or Resource Exhaustion?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板