Планировщик

Вы можете пропустить этот раздел при первом знакомстве с системой.

Подсистема планировщика позволяет выполнять периодический запуск определенных задач. Для запуска задачи в конфигурацию сервера добавляются записи вида:

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 подключение с отставанием ниже предельного.