如何使用APScheduler管理任务队列



我想使用APScheduler来处理任务调度和队列。我目前正在使用非常基本的APScheduler设置:BackgroundScheduler()我知道如何启动调度程序并在间隔触发作业上设置一些cron。但我不知道如何处理一个合适的队列。

这是我的代码:

from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()
def test():
print("Hello World !")
def start_job():
scheduler.add_job(
test
)
start_job() # first task
start_job() # second task
start_job() # third task
scheduler.start()

这段代码可以工作,但我需要一个接一个地运行任务,而不是同时运行所有任务。

我尝试过使用max_instances属性,但它不会改变任何内容。

我还尝试将id添加到我的工作中,然后只启动第一个任务,而不启动剩下的任务,并发出以下警告:Execution of job "test (trigger: date[2021-01-12 17:55:48 UTC], next run at: 2021-01-12 17:55:48 UTC)" skipped: maximum number of running instances reached (1)

我应该如何开始剩下的任务?

您选择的执行器决定了作业的执行方式,无论是并行执行还是顺序执行。如果不需要任何并行性,可以使用ThreadPoolExecutormax_workers=1来运行它们。

最新更新