如何在一天中以不同间隔运行Python脚本?

0 投票
3 回答
2145 浏览
提问于 2025-04-17 19:54

我需要根据不同的日期在不同的时间运行一个Python脚本。具体要求如下:

在工作日:

  • 早上7点到中午12点 => 每5分钟运行一次脚本

  • 中午12点到下午4点 => 每30分钟运行一次脚本

  • 下午4点到晚上9点 => 每5分钟运行一次脚本

  • 晚上9点到早上7点 => 每小时运行一次脚本

在周末:

  • 每半小时运行一次脚本

我之前做过一些简单的定时任务设置,但感觉定时任务(cron)似乎无法处理这么细致的时间安排。

我考虑过写一个bash脚本,里面检查时间,如果符合条件就运行Python脚本,但我遇到了一个问题,就是如何在每次运行bash脚本时保持时间的持续性。

3 个回答

0

看看这个叫做 apscheduler 的东西:http://pythonhosted.org/APScheduler/,还有 dateutil.rrule:http://labix.org/python-dateutil

有了这两个工具,你可以在 Python 里轻松创建很多类似于定时任务的规则,这样在不同的电脑和操作系统之间转移就简单多了。 :)

1

如果你在使用Windows系统,有一个叫做任务调度器的程序,可以帮助你完成这个工作。

如果你在使用Linux系统(听起来你是),我觉得crontab可以满足你的需求。这里有一个我找到的教程,希望对你有帮助。

4

只需要在你的定时任务设置里注册多个条目就可以了:

#
# Weekdays
#

# Start 7 am - End 12 pm => run script every 5 minutes
*/5  7-11      * * mon-fri *   yourscript

# Start 12:00 pm - End 4 pm => run script every 30 minutes
0,30 12-15     * * mon-fri *   yourscript

# Start 4 pm - End 9 pm => run script every 5 minutes
*/5  16-20     * * mon-fri *   yourscript

# Start 9 pm - End 7 am => run script every hour
0    0-6,21-23 * * mon-fri *   yourscript

# 
# Weekends
#

# Run script every half hour
0,30 *         * * sat-sun *   yourscript

定时任务(Cron)可以很好地处理这种细致的设置。

撰写回答