我正在研究Python程序。它需要每15分钟运行一次。当前,它等待870秒(14.5分钟)后才能再次运行,但是随着完成操作所需的时间有所不同,有时它会在上一次运行15分钟后才运行,有时是15分钟后。
我这部分的代码目前看起来像这样:
print(colour.BOLD, colour.PURPLE, "Finished", colour.END)
print(colour.BOLD, colour.BLUE, 'WAITING 15 MINUTES (900 SECONDS)', colour.END)
time.sleep(870)
是否有办法让它在xx:15,xx:30,xx:45,xx:00上运行,其中xx每小时从00到23?
对不起,如果我在这里感到困惑。感谢您事先提供的帮助。
我将使用schedule
模块:https://pypi.org/project/schedule/
您将运行:
schedule.every().minute.at(":00").do(job)
schedule.every().minute.at(":15").do(job)
schedule.every().minute.at(":30").do(job)
schedule.every().minute.at(":45").do(job)
使用操作系统工具获得相似的结果。
它们非常可靠,如果您的脚本失败,它将在下一次运行。
Linux的使用crontab。设置方法会根据您的发行版而略有变化。
一般而言:
sudo crontab -e
在crontab写入内部(请确保自定义python可执行文件和脚本路径):
*/15 * * * * /usr/bin/python /path/to/your/script.py
这将确保您的脚本每15分钟执行一次。
视窗如何在Windows上安排任务更多地取决于您所使用的Windows版本,这是一个非常直观的任务。与我在这里笨拙解释的结果相比,谷歌搜索“如何在Windows中安排任务”将返回更好/更具体/更新的结果。
Here是我为您找到的一个不错的选择。
苹果在StackOverflow上阅读Meki的amazing answer。
如果您使用的是Linux,则cron
是您的朋友:https://en.wikipedia.org/wiki/Cron
获取小时和分钟的简单方法是使用time.localtime()
E.g。
import time
date=time.localtime()
year=date[0]
month=date[1]
day=date[2]
hour=date[3]
minute=date[4]
seconds=date[5]
拥有这样一个脚本,它以不固定的时间间隔执行某件事,从而控制了自己的命运,这使我很疯狂。我将使用外部调度框架以不连续的时间间隔运行此作业。在Linux中,可以使用cronjobs来完成。在Windows中,可以使用“任务计划程序”来完成。
Linux中:在终端中,键入
crontab -e
编辑当前用户上下文的cron计划。在网上可以找到有关编辑cron的文档-这是一个:https://www.raspberrypi.org/documentation/linux/usage/cron.md
窗口:您可以计划在Windows Task Scheduler中按此计划运行python脚本。这是通过该链接的链接:https://www.esri.com/arcgis-blog/products/product/analytics/scheduling-a-python-script-or-model-to-run-at-a-prescribed-time/