可以使用APScheduler库来实现在上一个任务完成后触发新任务的功能。下面是一个使用APScheduler的代码示例:
from apscheduler.schedulers.background import BackgroundScheduler
def job1():
print("Job 1 executed")
def job2():
print("Job 2 executed")
# 创建一个后台调度器
scheduler = BackgroundScheduler()
# 添加任务,每隔5秒执行一次job1
scheduler.add_job(job1, 'interval', seconds=5)
# 添加任务,当job1完成后执行job2
scheduler.add_job(job2, 'interval', seconds=5, next_run_time=None, id='job2', misfire_grace_time=1)
# 启动调度器
scheduler.start()
# 等待调度器终止
scheduler.shutdown()
在上面的代码中,我们使用了BackgroundScheduler来创建一个后台调度器。然后,我们使用add_job方法添加了两个任务,job1和job2。job1被设置为每隔5秒执行一次,而job2被设置为在job1执行完成后执行。通过设置next_run_time为None,job2的下一次执行时间将由调度器自动计算,并在job1执行完成后触发。
最后,我们调用scheduler.start()来启动调度器,并使用scheduler.shutdown()来等待调度器终止。
当运行上述代码时,你会看到每隔5秒,"Job 1 executed"被打印出来,然后立即打印"Job 2 executed"。这是因为job2的下一次执行时间是在job1执行完成后计算的。
请注意,上述代码只是一个示例,你可以根据自己的需求来修改任务的执行逻辑和时间间隔。