在特定时间运行Python

问题描述 投票:1回答:5

我正在研究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?

对不起,如果我在这里感到困惑。感谢您事先提供的帮助。

python time delay wait clock
5个回答
1
投票

我将使用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)

1
投票

使用操作系统工具获得相似的结果。

它们非常可靠,如果您的脚本失败,它将在下一次运行。

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


0
投票

如果您使用的是Linux,则cron是您的朋友:https://en.wikipedia.org/wiki/Cron


0
投票

获取小时和分钟的简单方法是使用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]

0
投票

拥有这样一个脚本,它以不固定的时间间隔执行某件事,从而控制了自己的命运,这使我很疯狂。我将使用外部调度框架以不连续的时间间隔运行此作业。在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/

如果您使用此方法来控制适当的行为,请务必使用“如果任务已在运行”和“错过计划的启动后尽快运行任务”选项:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.