[英]how to run a python script constantly for a day
我有一個在 Internet 上搜索內容的 python 腳本。腳本需要 2 分鍾才能完成。 2 分鍾后腳本將退出並完成工作。
但我想在我的電腦上不停地運行這個腳本一天。 這意味着我想在完成一天后重新運行腳本。
到目前為止,我嘗試過這樣的事情:
status = True
def setstatus(stat):
global status
if staus:
status = not stat
timer = Timer(1440,setstatus,[True])
timer.start()
while status:
# do the job
有什么建議嗎?
time.time()
將為您提供當前時間(從某個時間原點開始的秒數,實際上是在 1970 年初)。 通過從當前時間添加秒數來計算結束時間,然后循環直到那時。
import time
end_time = time.time() + 86400
while time.time() < end_time:
# do the job
顯然,這將繼續使用與您的工作所需的 CPU 一樣多的 CPU——您聲明的目標是“在我的計算機上不斷運行此腳本一天而不停止” ,這將滿足您的要求。 如果實際上您希望它通過在每次迭代中休眠一段時間來減少 CPU 消耗,那么您可以在循環中插入一個time.sleep(...)
(休眠時間值以秒為單位)。
僅適用於基於 GNU/Unix 的系統。
您可以使用Cron 。
例如,每天上午 10 點運行一個腳本
在終端輸入crontab -e
。 將0 10 * * * /path/to/script.py
添加到提示文件中。
如果您按照問題所述將它與網絡爬蟲一起使用,則可以使用 shell 腳本來封裝您的 python 腳本。
#!/bin/bash
# setup variables
DATE=$(date +"%Y-%m-%d-%H-%M")
SCRIPT_FILE="path/to/python/script.py"
OUTPUT_FILE="path/to/save/outputs/${DATE}.json"
# activate virtualenv and run scrapy, for example
source path/to/venv/bin/activate
scrapy runspider ${SCRIPT_FILE} -o ${OUTPUT_FILE}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.