...
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/** * Интерфейс обработчика активации сервисов.<br/> * <pre>Жизненный цикл: * init * * connect * serviceModify * serviceModify * serviceCancel * disconnect * * connect * serviceCreate * serviceModify * connectionModify * serviceModify * connectionClose * disconnect * destroy</pre> */ public interface ServiceActivator { /** * Инициализация обработчика. Вызывается после создания объекта. * @param setup * @param moduleId * @param device * @param deviceType * @param config * @return * @throws Exception */ public Object init( Setup setup, int moduleId, InetDevice device, InetDeviceType deviceType, ParameterMap config ) throws Exception; /** * Утилизация обработчика. Вызывается перед уничтожением объекта. * @return * @throws Exception */ public Object destroy() throws Exception; /** * Подключение к устройству для работы с ним. * @return * @throws Exception */ public Object connect() throws Exception; /** * Отключение от устройства. * @return * @throws Exception */ public Object disconnect() throws Exception; /** * Создание сервиса (по событию добавления или началу периода действия) * @param e * @return * @throws Exception */ public Object serviceCreate( ServiceActivatorEvent e ) throws Exception; /** * Изменение сервиса (подключение/отключение/изменение скорости). * Вызывается при изменении набора опций или изменении состояния сервиса * @see ServiceActivatorEvent * @see {@link ServiceActivatorEvent#getNewState()} * @param e * @return * @throws Exception */ public Object serviceModify( ServiceActivatorEvent e ) throws Exception; /** * Удаление сервиса (по событию удаления или окончания периода действия). * @param e * @return * @throws Exception */ public Object serviceCancel( ServiceActivatorEvent e ) throws Exception; /** * Изменение соединения. * Вызывается при изменении набора опции на соединении или при изменении состояния.<br/> * Обычно, при {@link ServiceActivatorEvent#getNewState()} == {@link InetServ#STATE_DISABLE} из этого метода происходит вызов метода {@link #connectionClose(ServiceActivatorEvent)} * @param e * @return * @throws Exception */ public Object connectionModify( ServiceActivatorEvent e ) throws Exception; /** * Закрытие (принудительное) соединения.<br/> * Обычно вызывается при {@link AccessCodes#TOO_MANY_SESSIONS_ERROR} или из метода {@link #connectionModify(ServiceActivatorEvent)} * @param e * @return * @throws Exception */ public Object connectionClose( ServiceActivatorEvent e ) throws Exception; /** * Обработка старта соединения. * @param event * @return * @throws Exception */ public Object onAccountingStart( ServiceActivatorEvent event ) throws Exception; /** * Обработка стопа соединения. * @param event * @return * @throws Exception */ public Object onAccountingStop( ServiceActivatorEvent event ) throws Exception; } |
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
# кол-во задач выполняющихся одним блоком #sa.batch.size=20 # время паузы между блоком задач #sa.batch.pause.millis=0 # время ожидания завершения асинхронных задач sa.batch.wait.millis=5000 # время ожидания новой задачи, до того как отключиться от устройства (вызвать disconnect у ServiceActivator) sa.batch.waitNext.millis=5000 # пауза при ошибке синхронизации sa.error.pause.millis=60000 # кол-во ошибок, возникающих подряд, для отправки оповещения (alarm) sa.error.alarm.count=20 # кол-во ошибок, возникающих подряд, для отправки задачи в конец очереди sa.error.redelivery.count=100 # таймаут задачи, которая не может выполниться из-за ошибок синхронизации sa.error.redelivery.timeout=86400 sa.device.sync.allPath= |
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
# при полной синхронизации устройства - синхронизировать все связанные устройства или только данное #sa.device.sync.allPath=1 # при полной синхронизации устройства нужно ли вызывать onAccountingStart для активных сессий #sa.device.sync.onAccountingStart=0 # нужно ли при полной синхронизации устройства вызывать сначала serviceCancel и только потом serviceCreate #sa.device.sync.cancelBeforeCreate=1 # вызов всегда connectionModify вместо connectionClose #sa.connection.modifyInsteadClose=0 # вызов всегда connectionClose вместо connectionModify #sa.connection.closeInsteadModify |