簡體   English   中英

如何僅在一天中的某些時段運行Python腳本?

[英]How to run Python script only during certain hours of the day?

我有一個腳本需要在早上7點到晚上9點之間運行。 該腳本已經無限期地運行,但如果我能夠在上述時間之外暫停它,那么它將最小化它將產生的數據量。

我目前在某些部分使用time.sleep(x)time.sleep(36000)似乎有點傻嗎?

使用Python 2.7

提前致謝!

您應該使用cron作業(如果您正在運行Linux )。

例如:每天早上7點到9點執行你的python腳本。

0 7 * * * /bin/execute/this/script.py
  • 分鍾:0
  • 小時:7
  • 每月的一天:*(每月的每一天)
  • 月份:*(每月)
  • 和周:*(全部)

現在說你想在上午9點退出該計划。

您可以像這樣實現您的python代碼,以便在2小時后自動終止。

import time

start = time.time()

PERIOD_OF_TIME = 7200 # 120 min

while True :
    ... do something

    if time.time() > start + PERIOD_OF_TIME : break

您應該考慮使用像cron這樣的調度程序。 但是,如果腳本將無限期運行,我認為time.sleep(36000)是可接受的(或time.sleep(10*60*60) )。

您可以使用時間函數來檢查它的時間,然后在需要時調用腳本:

import time
import subprocess

process = None
running = False

while True:
    if time.daylight and not running:
        # Run once during daylight
        print 'Running script'
        process = subprocess.Popen("Myscript.py")
        running = True
    elif not time.daylight and running:
        # Wait until next day before executing again
        print 'Terminating script'        
        process.kill()
        running = False
    time.sleep(600)  # Wait 10 mins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM