我需要根据当天的不同时间运行python脚本。要求是:
平日:
从早上7点开始 - 结束12点=>每5分钟运行一次脚本
开始12:00 pm - 结束4 pm =>每30分钟运行一次脚本
下午4点开始 - 结束晚上9点=>每5分钟运行一次脚本
从晚上9点开始 - 结束早上7点=>每小时运行一次脚本
周末:
我以前做过一些简单的cron东西,但似乎cron不能处理这种粒度。
我考虑过创建一个bash脚本,它会检查时间并运行python脚本,如果满足条件,但是我遇到了如何在每次运行bash脚本时保持时间的问题。
答案 0 :(得分:2)
只需在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可以处理这样的粒度就好。
答案 1 :(得分:1)
如果您在Windows中工作,则有一个名为任务调度程序的程序可以让您完成此操作。
如果你在Linux上工作(听起来像你),我相信crontab会做你想要的。我发现Here is a tutorial,我希望它对你有所帮助。
答案 2 :(得分:0)
看看apscheduler:http://pythonhosted.org/APScheduler/ 和dateutil.rrule:http://labix.org/python-dateutil
使用这两个你可以在python中制作很多类似规则的chron,这使得在机器和操作系统之间传输更加容易.. :)