是的,Apscheduler可以使用相同的cron触发器运行两个作业。可以通过创建两个不同的作业,并使用相同的cron表达式来实现。
以下是一个使用Apscheduler的代码示例,其中包含两个使用相同的cron触发器运行的作业:
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger
def job1():
print("Job 1 is running...")
def job2():
print("Job 2 is running...")
# 创建调度器
scheduler = BlockingScheduler()
# 创建作业1,并设置使用相同的cron触发器
job1_trigger = CronTrigger.from_crontab("0 0 * * *") # 每天0点运行
scheduler.add_job(job1, job1_trigger, id='job1')
# 创建作业2,并设置使用相同的cron触发器
job2_trigger = CronTrigger.from_crontab("0 0 * * *") # 每天0点运行
scheduler.add_job(job2, job2_trigger, id='job2')
# 启动调度器
scheduler.start()
在上面的示例中,我们创建了两个作业job1
和job2
,并使用相同的cron触发器运行它们。这两个作业都将在每天的0点运行。
注意:使用相同的cron触发器运行两个作业可能存在并发问题,因为它们是在同一个时间点触发的。如果需要避免并发执行,可以在作业函数中添加适当的同步机制。