我下面的调度程序工作是用Django框架编写的。我正在使用作业存储将所有作业和执行详细信息存储在SQL DB中。以下是我的调度程序代码。我的Django应用程序在5个实例/服务器上运行。 Scheduler Job正在所有5个实例/服务器中启动并执行。有什么方法可以使作业仅在一个实例中运行,而跳过该作业在其他4个实例中执行。
注意:我不能在每个实例/服务器上使用不同的代码(尽管我仅在一个服务器上具有调度程序,但是在我的情况下这是不可能的)。有人可以帮忙吗?
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
scheduler_testing = scheduler.add_job(scheduler_testing,
'cron',
id='scheduler_testing',
replace_existing=True,
coalesce=False,
max_instances=1,
**timings)
作业执行细节:
id status run_time duration start_time end_time job_id
30 Executed 2019-01-10 15:00:00 53.94 1547154000.41 1547154054.35 1
31 Executed 2019-01-10 15:00:00 53.44 1547154000.41 1547154053.85 1
32 Executed 2019-01-10 15:00:00 52.86 1547154000.41 1547154053.27 1
33 Executed 2019-01-10 15:00:00 52.27 1547154000.41 1547154052.68 1
34 Executed 2019-01-10 15:00:00 51.86 1547154000.30 1547154052.16 1