Package ru.bitel.bgbilling.kernel.event
Class EventWorker
java.lang.Object
ru.bitel.common.worker.WorkerTask<EventListenerContext>
ru.bitel.bgbilling.kernel.event.EventWorker
- All Implemented Interfaces:
Runnable
,EventListener<ru.bitel.bgbilling.kernel.event.common.Event>
- Direct Known Subclasses:
AsyncEventWorker
public abstract class EventWorker
extends ru.bitel.common.worker.WorkerTask<EventListenerContext>
implements EventListener<ru.bitel.bgbilling.kernel.event.common.Event>
Обрабочтик событий. Выбирает события из MessageConsumer и задает методы для обрабоотки этих событий(реализуются в потомках)
-
Nested Class Summary
Nested classes/interfaces inherited from class ru.bitel.common.worker.WorkerTask
ru.bitel.common.worker.WorkerTask.BlockingExecutionHandler
-
Field Summary
Modifier and TypeFieldDescriptionprotected long
Сколько ждать следующего задания/события, прежде чем прекратить цикл (прекратитьdoTasks()
), в мс.protected ru.bitel.bgbilling.kernel.event.AbstractConsumer
protected long
Длительность паузы после возникновения ошибки, в мс.protected final int
protected boolean
Fields inherited from class ru.bitel.common.worker.WorkerTask
context
-
Constructor Summary
ModifierConstructorDescriptionprotected
EventWorker
(int moduleId) EventWorker
(EventProcessor ep, Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, int moduleId, int pluginId, String query) EventWorker
(EventProcessor ep, String destination, int moduleId, int pluginId, String query, boolean autoAcknowledge, Class<?>... clazz) -
Method Summary
Modifier and TypeMethodDescriptionabstract Object
Выполнение одной задачи (события).boolean
doTasks()
Выполнение задач (одной или нескольких, с ожиданием новых в теченииbatchWait
), нужно вызывать изrunWorker()
.protected boolean
internalDoTask
(Object task) protected int
internalRunWorker
(long timeout, boolean wait) void
notify
(ru.bitel.bgbilling.kernel.event.common.Event e, EventListenerContext ctx) protected Object
poll
(long timeout) protected Object
protected void
runImpl()
protected abstract boolean
Вызывается, когда появляются задачи.void
setConsumer
(Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, String query) void
shutdown()
Methods inherited from class ru.bitel.common.worker.WorkerTask
newBlockingFixedThreadPool, newFixedThreadPool, newFixedThreadPool, newScheduledThreadPool, run, runSync, runSync, setContext
-
Field Details
-
consumer
protected ru.bitel.bgbilling.kernel.event.AbstractConsumer consumer -
batchWait
protected long batchWaitСколько ждать следующего задания/события, прежде чем прекратить цикл (прекратитьdoTasks()
), в мс. -
errorPause
protected long errorPauseДлительность паузы после возникновения ошибки, в мс. -
working
protected volatile boolean working -
moduleId
protected final int moduleId
-
-
Constructor Details
-
EventWorker
protected EventWorker(int moduleId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
EventWorker
public EventWorker(EventProcessor ep, Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, int moduleId, int pluginId, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
EventWorker
public EventWorker(EventProcessor ep, String destination, int moduleId, int pluginId, String query, boolean autoAcknowledge, Class<?>... clazz) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
-
Method Details
-
setConsumer
public void setConsumer(Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, String query) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
runImpl
- Specified by:
runImpl
in classru.bitel.common.worker.WorkerTask<EventListenerContext>
- Throws:
Exception
-
internalRunWorker
protected int internalRunWorker(long timeout, boolean wait) - Parameters:
timeout
-wait
-- Returns:
- -1, если произошла ошибка; 0, если ничего не было сделано, 1, если нормально выполнено одно или более заданий.
-
pollFirstTask
-
poll
- Throws:
ru.bitel.bgbilling.common.BGException
-
doTasks
public boolean doTasks() throws ru.bitel.bgbilling.common.BGExceptionВыполнение задач (одной или нескольких, с ожиданием новых в теченииbatchWait
), нужно вызывать изrunWorker()
.- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
internalDoTask
protected boolean internalDoTask(Object task) throws javax.jms.JMSException, javax.xml.bind.JAXBException, ru.bitel.bgbilling.common.BGException - Throws:
javax.jms.JMSException
javax.xml.bind.JAXBException
ru.bitel.bgbilling.common.BGException
-
runWorker
protected abstract boolean runWorker() throws ru.bitel.bgbilling.common.BGExceptionВызывается, когда появляются задачи. Внутри данного метода нужно вызватьdoTasks()
, который выполняет последовательно появившиеся задачи. А перед и после вызоваdoTasks()
можно инициализировать и освободить DAO.- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
notify
public void notify(ru.bitel.bgbilling.kernel.event.common.Event e, EventListenerContext ctx) throws ru.bitel.bgbilling.common.BGException - Specified by:
notify
in interfaceEventListener<ru.bitel.bgbilling.kernel.event.common.Event>
- Throws:
ru.bitel.bgbilling.common.BGException
-
doTask
Выполнение одной задачи (события).- Parameters:
task
-- Returns:
- обычно null.
- Throws:
ru.bitel.bgbilling.common.BGException
-
shutdown
public void shutdown() throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-