У меня есть ниже работа планировщика, написанная в рамках Django. Я использую хранилище заданий для хранения всех заданий и подробностей выполнения в базе данных SQL. Ниже мой код планировщика. У меня есть приложение Django, работающее на 5 экземплярах / серверах. Планировщик Задание запускается и выполняется во всех 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