繁体   English   中英

如何连续运行python脚本一天

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM