[英]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.