2016-04-28 35 views
0

假設我想在上午10點每天運行一次該功能。計劃的Python程序通常如何運行?

  • 難道我只是將腳本永遠保持在後臺運行?
  • 如果我不想讓我的筆記本電腦每次打開/關閉多少天,該怎麼辦?
  • 這個過程是否會吃掉很多CPU?

如果我以編程方式使用cron/launchd與調度,這些問題的答案會不同嗎?謝謝!

+5

對於類Unix系統,您可以使用類似於[cron](https:// en.wikipedia.org/wiki/Cron)或[systemd計時器](https://www.freedesktop.org/software/systemd/man/systemd.timer.html)。對於Windows,我確定有類似的調度程序。 – larsks

+0

CPU問題的答案確實取決於你的腳本正在做什麼。 –

+0

@ cricket_007,我猜OP意味着如果調度是通過'time.sleep(24 * 60 * 60)'來實現的,程序是否會消耗CPU時間。 – kay

回答

1

此問題的答案可能取決於您的平臺,可用設施和您的特定項目需求。

首先讓我解決系統資源問題。如果您想使用最少的資源,只需撥打time.sleep(NNN),其中NNN是直到下一個10AM的秒數。 time.sleep將暫停執行你的程序,並應該消耗零(或幾乎爲零的資源)。蟒蛇GC可能會週期性地醒來並進行維護,但它的工作應該可以忽略不計。

如果您使用的是Unix,cron是安排未來任務的典型工具。它實現了一個相當高效的Franta-Maly事件列表管理器。它將根據將發生的任務列表確定下一個,然後休眠。

在Windows上,您具有計劃管理器。這是一個複雜的科學怪人 - 但它非常靈活,可以處理由於停電和筆記本電腦休眠等造成的錯過事件...