2016-04-11 3 views
0

У меня есть требование, чтобы часть моего задания на кварце выполнялась кластеризованным способом (только один узел из трех должен запускать задание) и некоторые задания для работать не кластеризованным способом (все 3 узла из 3 должны запускать задание).Использовать тот же экземпляр кварца, как кластерный, так и не кластерный, для одного и того же набора таблицы кварца

Теперь мои вопросы: могу ли я использовать один и тот же набор таблиц в источнике данных для обоих этих требований.

Вот что я могу сделать для достижения того же.

  1. 2 quartz.properties один для кластерного экземпляра и один для некрупных.
  2. Оба экземпляра кластера начнутся при запуске приложения.
  3. Таким образом, задания, настроенные под некластеризованным планировщиком, будут сохранены с именем планировщика как NON_CLST_SCHE в таблице заданий, в той же таблице под другим именем планировщика.

Это правильный способ использования кварца? Возникает ли у нас проблема проблем с повреждением данных?

В соответствии с кварцевой Документацией @http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-11.html он говорит, что Никогда противопожарный до некластеризованного экземпляра против того же набора таблиц, что любой другой экземпляр работает против. Вы можете получить серьезное повреждение данных и обязательно будете испытывать неустойчивое поведение.

Теперь, если выше объяснение истинно, каков выход для моего требования.

Любая помощь очень ценится, спасибо заранее!

ответ

1

Я думаю, что ваш подход прекрасен (если предположить, что все некластерные планировщики, имеющие доступ к одной базе данных, имеют уникальное имя планировщика).

В моем предложении предупреждение относится к случаю, когда у вас несколько экземпляров без кластеризации с тем же именем планировщика, которое выполняется в той же базе данных. Например. планировщик мог видеть только задания, триггеры и т. д. из JDBC-Jobstore, если связанное с ним имя SchedulerName (триггер, ...) совпадает с заданием планировщика.

+0

Хорошо. В соответствии с вашим комментарием. В моем оппонировании предупреждение относится к случаю, когда у вас несколько экземпляров без кластеризации ..... Он относится к узлам сервера, которые не находятся в кластерном режиме и по-прежнему имеют доступ к одному и тому же набору таблиц. Я правильно понимаю это? –

+0

Да. Я действительно уверен в этом, потому что я использую эту настройку в производственной среде (начиная с 2-х лет, с примерно 100 рабочими местами в день). То есть у нас есть несколько некластеризованных планировщиков с разными именами планировщика, которые работают против одного и того же набора таблиц. Следовательно, каждый планировщик имеет свое уникальное имя SchedulerName, они могут работать в режиме без кластеризации. – mam10eks

+0

Спасибо !. Он работает так, как ожидалось. –