如何在一天中以不同间隔运行Python脚本?
我需要根据不同的日期在不同的时间运行一个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)可以很好地处理这种细致的设置。