Планировщик
Вы можете пропустить этот раздел при первом знакомстве с системой. |
Подсистема планировщика позволяет выполнять периодический запуск определенных задач. Для запуска задачи в конфигурацию сервера добавляются записи вида:
scheduler.task.<id>.class=<class_name>
scheduler.task.<id>.minutes=<minutes>
# необязательные параметры
scheduler.task.<id>.hours=<hours>
scheduler.task.<id>.dw=<dw>
Где:
-
<id> - уникальный числовой идентификатор задачи;
-
<class_name> - имя класса запускаемой задачи;
-
<hours> - часы в которые запускается задача, через запятую от 0 до 23;
-
<dw> - дни недели в которые запускается задача, через запятую от 1 до 7, 1 - понедельник.
Планировщик ежеминутно проверяет задачи и выполняет те из них, чьи ограничения по времени отвечают указанным в конфигурации условиям.
В планировщике может быть запущен любой объект Java-класса, реализующий интерфейс java.lang.Runnable. Класс может быть статическим либо динамическим. Для разового запуска вы можете использовать запуск класса.
Задача на отслеживание отставания slave базы данных
scheduler.task.<id>.class=ru.bgcrm.util.sql.scheduler.DatabaseSlaveBehindCheck
scheduler.task.<id>.slave.lag=<lag>
scheduler.task.<id>.slave.ids=<ids>
Где:
-
<lag> - количество секунд предельного отставания slave базы данных
-
<ids> - идентификаторы slave базы данных для отслеживания (если пусто, берутся все)
Задача ежеминутно проверяет отставание slave базы данных и помечает их как отстающие, если отставание превышает lag секунд , после чего при получении slave подключений возвращается либо master подключение, либо slave подключение с отставанием ниже предельного.