为了账号安全,请及时绑定邮箱和手机立即绑定

在特定时间运行 Python

在特定时间运行 Python

三国纷争 2022-06-07 19:29:30
我正在开发一个 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 的每小时?对不起,如果我在这里感到困惑。感谢您提前提供任何帮助。
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

使用您的操作系统工具来获得类似的结果。

它们非常可靠,如果您的脚本失败,下次它仍然会运行。

Linux
使用 crontab。
如何设置它会根据您的发行版而略有变化。

作为一个总体思路:

sudo crontab -e

在crontab里面写(一定要自定义python可执行文件和脚本路径):

*/15 * * * * /usr/bin/python /path/to/your/script.py

这将确保您的脚本每 15 分钟执行一次。

Windows
如何在 Windows 上安排任务更多地取决于您使用的 Windows 版本,这是一项非常直观的任务。谷歌搜索“如何在 Windows 中安排任务”将返回比我在这里笨拙地解释的更好/更具体/更新的结果。

是我为你找到的一个不错的。

Mac
在 StackOverflow 上 阅读Meki的惊人答案。


查看完整回答
反对 回复 2022-06-07
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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


查看完整回答
反对 回复 2022-06-07
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

有一个脚本在不连续的时间间隔做一件事,像这样控制自己的命运,这让我感到很奇怪。我将使用外部调度框架以离散的时间间隔运行此作业。在 Linux 中,这可以通过 cronjobs 来完成;在 Windows 中,可以使用任务计划程序来完成。


Linux:在终端中,键入


crontab -e

编辑当前用户上下文的 cron 计划。可以在整个互联网上找到有关编辑 cron 的文档 - 这是一个:https ://www.raspberrypi.org/documentation/linux/usage/cron.md


Windows:您可以在 Windows 任务计划程序中安排 Python 脚本按该计划运行。这是一个链接:https ://www.esri.com/arcgis-blog/products/product/analytics/scheduling-a-python-script-or-model-to-run-at-a-prescribed-time /


如果您使用此方法来控制适当的行为,请务必使用“如果任务已在运行”和“在错过预定开始后尽快运行任务”选项:

//img1.sycdn.imooc.com//629f36c3000148d106290479.jpg

查看完整回答
反对 回复 2022-06-07
  • 3 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信