0

我需要根据一天的不同时间运行 python 脚本。要求是:

在工作日:

  • 早上 7 点开始 - 晚上 12 点结束 => 每 5 分钟运行一次脚本

  • 下午 12:00 开始 - 下午 4 点结束 => 每 30 分钟运行一次脚本

  • 下午 4 点开始 - 晚上 9 点结束 => 每 5 分钟运行一次脚本

  • 晚上 9 点开始 - 早上 7 点结束 => 每小时运行一次脚本

在周末:

  • 每半小时运行一次脚本

我以前做过一些简单的 cron 东西,但似乎 cron 不能处理这种粒度。

我曾考虑创建一个 bash 脚本,它会检查时间并在满足条件时运行 python 脚本,但我遇到了如何通过每次运行 bash 脚本来保持时间的问题。

4

3 回答 3

3

只需在您的 crontab 中注册多个条目:

#
# 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 可以很好地处理这种粒度

于 2013-03-21T16:17:59.440 回答
1

如果您在 Windows 中工作,则有一个名为任务调度程序的程序可以让您完全执行此操作。

如果你在 Linux 中工作(听起来像你),我相信 crontab 会做你想做的事。 这是我找到的一个教程,希望对你有所帮助。

于 2013-03-21T16:11:55.367 回答
0

看看 apscheduler:http ://pythonhosted.org/APScheduler/ 和 dateutil.rrule:http ://labix.org/python-dateutil

有了这两个,你可以在 python 中创建很多类似 chron 的规则,这使得在机器和操作系统之间传输更容易.. :)

于 2013-03-21T16:16:36.223 回答