Python脚本高级调度

2 投票
1 回答
829 浏览
提问于 2025-04-17 17:32

我正在尝试做一件非常复杂的事情。使用一台Windows电脑,我想让一个脚本每半小时运行一次,工作日(周一到周五)早上9点到晚上7点之间运行,同时跳过我定义的某些日期,也就是“假期”。我希望这个脚本能由Python自己来运行。我查过'apschedule',但似乎找不到合适的选项来实现这个功能。如果通过Python无法做到这一点,还有什么其他解决方案可以考虑呢?

顺便说一下,目前我在使用Python 3.3,但如果有必要的话,我愿意降级。

1 个回答

2

给你的工作函数加个装饰器,这样就能跳过特殊的日子:

from datetime import date

def not_on(dates):
    def noop(): pass
    def decor(fn):
        if date.today() in dates:
            return noop
        else:
            return fn
    return decor


@not_on( ( date(2013, 03, 01), ) )
def job():
    print "yeah"

然后你只需要在正常的日期安排你的工作就可以了。如果在特殊日子调用这个工作,装饰器会自动跳过执行。

继续使用 apscheduler 就行了。

撰写回答