选择正确的调度器(scheduler)、作业存储(job store)、执行器(executor)和触发器(trigger)取决于环境以及如何使用APScheduler。根据应用程序使用的框架和技术,选择相应的调度器来与应用程序集成。下面是选择调度器的简要指南:
-
BlockingScheduler:当调度器是进程中唯一运行的内容时使用。
-
BackgroundScheduler:当没有使用下面提到的任何框架,并且希望调度器在应用程序内后台运行时使用。
-
AsyncIOScheduler:当应用程序使用asyncio模块时使用。
-
GeventScheduler:当应用程序使用gevent时使用。
-
TornadoScheduler:当正在构建一个Tornado应用程序时使用。
-
TwistedScheduler:当正在构建一个Twisted应用程序时使用。
-
QtScheduler:当正在构建一个Qt应用程序时使用。
其中,BlockingScheduler是最常用的调度器,适用于调度器是进程中唯一运行的情况。BackgroundScheduler适用于希望在应用程序内部以后台方式运行调度器的情况。而其他调度器如AsyncIOScheduler、GeventScheduler、TornadoScheduler、TwistedScheduler和QtScheduler适用于特定的框架和应用程序类型。
当安排一个作业时,需要选择一个触发器(trigger)。触发器确定作业运行时计算日期/时间的逻辑。APScheduler提供了三种内置的触发器类型:
-
date(日期):在特定的时间点运行作业时使用。
-
interval(间隔):在固定的时间间隔内运行作业时使用。
-
cron(定时):在每天的特定时间点周期性地运行作业时使用。
还可以将多个触发器组合成一个触发器,它会在所有参与的触发器所约定的时间点触发,或者当任何一个触发器触发时激活。有关组合触发器的更多信息,请参阅相关文档。