Package ru.bitel.bgbilling.kernel.event
Class EventProcessor
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.kernel.event.EventProcessor
public class EventProcessor
extends ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
Обработчик (и отсылщик) событий.
Текущая проверенная пропускная способность для запроса-ответа на 4ядерном -
около 1000 в секунду для xml сериализации, примерно в полтора раза больше для обычной сериализации.
Но xml предпочтительнее для интеграции с внешними системами. При простом оповещении о событии (topic) - еще в два раза больше.
Текущая проверенная пропускная способность для запроса-ответа на 4ядерном -
около 1000 в секунду для xml сериализации, примерно в полтора раза больше для обычной сериализации.
Но xml предпочтительнее для интеграции с внешними системами. При простом оповещении о событии (topic) - еще в два раза больше.
- 
Field Summary
Fields - 
Method Summary
Modifier and TypeMethodDescription<E extends ru.bitel.bgbilling.kernel.event.common.Event>
voidaddListener(EventListener<? super E> l, Class<E> clazz) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
voidaddListener(EventListener<? super E> l, Class<E> clazz, int moduleId, int pluginId, String query) Добавление слушателя события с параметрами фильтра.<E extends ru.bitel.bgbilling.kernel.event.common.Event>
voidaddListener(EventListener<? super E> l, Class<E> clazz, int moduleId, String query) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
voidaddListener(EventListener<? super E> l, Class<E> clazz, String query) doCrossComponentQuery(String componentName, int componentId, String componentOperation, Object... params) static final EventProcessorПолучение instance процессора.static <E extends ru.bitel.bgbilling.kernel.event.common.Event>
StringВозвращает список событий, которые слушаются.Возвращает список событий, которые слушаются.<E extends ru.bitel.bgbilling.kernel.event.common.PoolEvent>
PoolEventPublisher<E>newPoolEventPublisher(Class<E> clazz, int moduleId) Создание отправщикаPoolEvent.<E extends ru.bitel.bgbilling.kernel.event.common.PoolEvent>
PoolEventPublisher<E>newPoolEventPublisher(Class<E> clazz, int moduleId, int capacity, long delay) Создание отправщикаPoolEvent.<E extends ru.bitel.bgbilling.kernel.event.common.PoolQueueEvent>
PoolEventPublisher<E>newPoolQueueEventPublisher(Class<E> clazz, int moduleId) Создание отправщикаPoolEvent.<E extends ru.bitel.bgbilling.kernel.event.common.PoolQueueEvent>
PoolEventPublisher<E>newPoolQueueEventPublisher(Class<E> clazz, int moduleId, int capacity, long delay) Создание отправщикаPoolEvent.final voidpublish(ru.bitel.bgbilling.kernel.event.common.Event event) final voidpublishAfterCommit(ru.bitel.bgbilling.kernel.event.common.Event e) final voidpublishAfterCommit(ru.bitel.common.worker.CommitableHandler context, ru.bitel.bgbilling.kernel.event.common.Event e) voidremoveListener(EventListener<?> l) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
voidremoveListener(EventListener<?> l, Class<E> clazz, int moduleId, String query) voidremoveListener(EventListener<?> l, Collection<String> exceptKeys) final <Q extends ru.bitel.bgbilling.kernel.event.common.QueueEvent>
Qrequest(Q e) Отправка события и ожидание ответа на него.final <Q extends ru.bitel.bgbilling.kernel.event.common.Event>
Qrequest(Q e, long timeout) Отправка события и ожидание ответа на него.<Q extends ru.bitel.bgbilling.kernel.event.common.Event>
Future<Q>requestAsync(Q e, long timeout) Выполнение запроса асинхронно.
Если ответ не пришел, обязательно должен быть обязательно вызванFuture.cancel(boolean)!!!final voidsetThreadCount(int count, int queue) Установка количества потоков обработки сообщений.
Sessionработает в одном потоке.voidshutdown()Останов и ожидание окончания выполнения уже полученных событий.<E extends ru.bitel.bgbilling.kernel.event.common.Event>
booleanupdateListener(EventListener<? super E> l, Class<E> clazz) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
booleanupdateListener(EventListener<? super E> l, Class<E> clazz, int moduleId, int pluginId, String query) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
booleanupdateListener(EventListener<? super E> l, Class<E> clazz, int moduleId, String query) <E extends ru.bitel.bgbilling.kernel.event.common.Event>
booleanupdateListener(EventListener<? super E> l, Class<E> clazz, String query) Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError 
- 
Field Details
- 
syncAcknowledgeFix
public final boolean syncAcknowledgeFix 
 - 
 - 
Method Details
- 
setThreadCount
public final void setThreadCount(int count, int queue) Установка количества потоков обработки сообщений.
Sessionработает в одном потоке. А этого параметра будет зависеть в пуле из скольки потоков
будет обрабатываться сообщение. Если count <=0 сообщение обрабатывается в том же потоке.- Parameters:
 count-
 - 
addListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> void addListener(EventListener<? super E> l, Class<E> clazz) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
addListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> void addListener(EventListener<? super E> l, Class<E> clazz, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
addListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> void addListener(EventListener<? super E> l, Class<E> clazz, int moduleId, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
addListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> void addListener(EventListener<? super E> l, Class<E> clazz, int moduleId, int pluginId, String query) throws ru.bitel.bgbilling.common.BGException Добавление слушателя события с параметрами фильтра.- Type Parameters:
 E-- Parameters:
 l-clazz-moduleId- фильтр по коду модуля (-1 - не важно, 0 - ядро)pluginId- фильтр по коду плагина (-1 - не важно)query- фильтр по параметрам сообщения события.
Параметры сообщения устанавливаются событием вEvent.prepareMessage(ObjectMessage)- Throws:
 ru.bitel.bgbilling.common.BGException- See Also:
 - 
Message
 
 - 
updateListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> boolean updateListener(EventListener<? super E> l, Class<E> clazz, int moduleId, int pluginId, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
updateListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> boolean updateListener(EventListener<? super E> l, Class<E> clazz) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
updateListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> boolean updateListener(EventListener<? super E> l, Class<E> clazz, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
updateListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> boolean updateListener(EventListener<? super E> l, Class<E> clazz, int moduleId, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
getKey
 - 
removeListener
- Throws:
 ru.bitel.bgbilling.common.BGException
 - 
removeListener
public <E extends ru.bitel.bgbilling.kernel.event.common.Event> void removeListener(EventListener<?> l, Class<E> clazz, int moduleId, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
removeListener
public void removeListener(EventListener<?> l, Collection<String> exceptKeys) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
publishAfterCommit
public final void publishAfterCommit(ru.bitel.common.worker.CommitableHandler context, ru.bitel.bgbilling.kernel.event.common.Event e)  - 
publishAfterCommit
public final void publishAfterCommit(ru.bitel.bgbilling.kernel.event.common.Event e)  - 
publish
public final void publish(ru.bitel.bgbilling.kernel.event.common.Event event) throws ru.bitel.bgbilling.common.BGException - Throws:
 ru.bitel.bgbilling.common.BGException
 - 
request
public final <Q extends ru.bitel.bgbilling.kernel.event.common.QueueEvent> Q request(Q e) throws ru.bitel.bgbilling.common.BGException Отправка события и ожидание ответа на него. Ответ - это (возможно) измененный объект e Но в тоже время он мог быть передан по сети туда и обратно, потому result != e- Throws:
 ru.bitel.bgbilling.common.BGException
 - 
request
public final <Q extends ru.bitel.bgbilling.kernel.event.common.Event> Q request(Q e, long timeout) throws EventProcessorException Отправка события и ожидание ответа на него. Ответ - это (возможно) измененный объект e Но в тоже время он был передан по сети туда и обратно, потому result != e
Если задан таймаут, то необходимо на повторное событие с теми же параметрами - отвечать одинаково,
так как событие на самом деле может все равно обработаться, но таймаут выйти и ответ не придет.- Throws:
 EventProcessorException
 - 
requestAsync
public <Q extends ru.bitel.bgbilling.kernel.event.common.Event> Future<Q> requestAsync(Q e, long timeout) throws EventProcessorException Выполнение запроса асинхронно.
Если ответ не пришел, обязательно должен быть обязательно вызванFuture.cancel(boolean)!!!- Type Parameters:
 Q-- Parameters:
 e-timeout-- Returns:
 - Throws:
 EventProcessorException
 - 
getListeningEvents
Возвращает список событий, которые слушаются.- Returns:
 
 - 
getListeningQueueEvents
 - 
getListeningEventKeys
Возвращает список событий, которые слушаются.- Returns:
 
 - 
getInstance
Получение instance процессора. Процессор инициализируется при первом использовании.- Returns:
 
 - 
newPoolEventPublisher
public <E extends ru.bitel.bgbilling.kernel.event.common.PoolEvent> PoolEventPublisher<E> newPoolEventPublisher(Class<E> clazz, int moduleId) Создание отправщикаPoolEvent.- Type Parameters:
 E-- Parameters:
 clazz-moduleId- код модуля, с которым будут все отправленные события.- Returns:
 - See Also:
 - 
PoolEvent
 
 - 
newPoolEventPublisher
public <E extends ru.bitel.bgbilling.kernel.event.common.PoolEvent> PoolEventPublisher<E> newPoolEventPublisher(Class<E> clazz, int moduleId, int capacity, long delay) Создание отправщикаPoolEvent.- Type Parameters:
 E-- Parameters:
 clazz-moduleId- код модуля, с которым будут все отправленные событияcapacity- максимальный размер буфера сообщенийdelay- частота отправки буфера, в миллисекундах- Returns:
 
 - 
newPoolQueueEventPublisher
public <E extends ru.bitel.bgbilling.kernel.event.common.PoolQueueEvent> PoolEventPublisher<E> newPoolQueueEventPublisher(Class<E> clazz, int moduleId) Создание отправщикаPoolEvent.- Type Parameters:
 E-- Parameters:
 clazz-moduleId- код модуля, с которым будут все отправленные события.- Returns:
 - See Also:
 - 
PoolEvent
 
 - 
newPoolQueueEventPublisher
public <E extends ru.bitel.bgbilling.kernel.event.common.PoolQueueEvent> PoolEventPublisher<E> newPoolQueueEventPublisher(Class<E> clazz, int moduleId, int capacity, long delay) Создание отправщикаPoolEvent.- Type Parameters:
 E-- Parameters:
 clazz-moduleId- код модуля, с которым будут все отправленные событияcapacity- максимальный размер буфера сообщенийdelay- частота отправки буфера, в миллисекундах- Returns:
 
 - 
shutdown
Останов и ожидание окончания выполнения уже полученных событий.- Throws:
 javax.jms.JMSExceptionInterruptedException
 - 
doCrossComponentQuery
public Map<String,Object> doCrossComponentQuery(String componentName, int componentId, String componentOperation, Object... params) throws Exception - Parameters:
 componentName-componentId-componentOperation-params-- Returns:
 - Throws:
 ru.bitel.bgbilling.common.BGExceptionException
 
 -