我们可以强制在APScheduler工作店中运行工作吗?

时间:2015-10-19 10:14:45

标签: python apscheduler

使用APScheduler 3.0.3版。我的应用程序中的服务在内部使用APScheduler来安排&经营工作。此外,我确实围绕实际的APScheduler创建了一个包装类(只是一个外观,有助于单元测试)。对于单元测试这些服务,我可以模拟这个包装类。但我有一种情况,我真的希望APScheduler能够运行这项工作(在测试期间)。有什么方法可以强制执行这项工作吗?

2 个答案:

答案 0 :(得分:4)

没有默认触发器可以立即启动作业,以实现此目的 你可以获得当前时间并将DateTrigger设置为这样的工作:

my_job.modify_job(trigger=DateTrigger(run_date=datetime.datetime.now()))

通过这种方式,您将“强制”运行作业,但您必须确保在调度程序中再次插入作业,另一个选项是创建一个新作业以使用add_job函数运行相同的函数

sched.add_job(func=your_function(),
              trigger=DateTrigger(run_date=datetime.datetime.now()))

这样您就不必再做任何额外的步骤了。

答案 1 :(得分:0)

另一种方法:你可以在单独的函数中编写你的工作逻辑。因此,您可以在预定的工作中以及其他地方调用此功能。我想这是一种更明确的方式来做你想做的事。