安排在Python中重复作业,并将时间单位指定为变量

时间:2016-06-07 07:22:16

标签: python schedule

我一直在使用优秀的schedule图书馆来开展各种工作,但有一件事我无法找到。

每10分钟运行一次作业的Python代码如下所示:

schedule.every(10).minutes.do(job)

问题是:我如何优雅地将时间单位作为变量?我想做这样的事情:

interval = 3
time_unit = 'hours'
schedule.every(interval).units(time_unit).do(job)

每3小时运行一次工作。使用变量可以使计划可配置。

除上述示例不起作用外:units成员仅为可读值。

在这种情况下,

eval并不安全。

1 个答案:

答案 0 :(得分:0)

我已经回答了我自己的问题。感谢那些回复的人。

# specify time interval units as a variable in code...
interval = 3
time_unit = 'hours'
schedule.every(interval).set_units(time_unit).do(job)

schedule库中的修补程序(类Job) - 添加以下方法:

def set_units(self, unit):
    self.unit = unit if unit[-1] == 's' else unit + 's'
    return self