2013-03-01 77 views
2

我试图做一些非常复杂的事情。使用Windows盒子,我试图让脚本运行每半小时,周一至周五,上午9:00到下午7:00,跳过我定义为“假期”的某些日期。我希望Python能够自己运行这个脚本。我已经看过'apschedule',但似乎无法找到我需要的正确选项。如果无法通过Python实现这一点,我还能看到其他什么解决方案?python脚本高级调度

顺便说一下,截至目前,我运行Python 3.3,但愿意降级,如果有必要。

回答

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

+0

我可以使用相同的脚本使其仅在营业时间内运行吗? – Weremole79 2013-03-03 00:13:01

+0

当然,只是用第二个装饰者来装饰它:'@ business_hours'看起来不错。你可以将它们堆叠在一起。 – akira 2013-03-03 10:54:57