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,TvAccountStateAndOptionsDatabaseWorker
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
FieldsModifier and TypeFieldDescriptionprotected longСколько ждать следующего задания/события, прежде чем прекратить цикл (прекратитьdoTasks()), в мс.protected ru.bitel.bgbilling.kernel.event.AbstractConsumerprotected longДлительность паузы после возникновения ошибки, в мс.protected final intprotected booleanFields inherited from class ru.bitel.common.worker.WorkerTask
context -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedEventWorker(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Выполнение одной задачи (события).booleandoTasks()Выполнение задач (одной или нескольких, с ожиданием новых в теченииbatchWait), нужно вызывать изrunWorker().protected booleaninternalDoTask(Object task) protected intinternalRunWorker(long timeout, boolean wait) voidnotify(ru.bitel.bgbilling.kernel.event.common.Event e, EventListenerContext ctx) protected Objectpoll(long timeout) protected Objectprotected voidrunImpl()protected abstract booleanВызывается, когда появляются задачи.voidsetConsumer(Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, String query) voidshutdown()Methods inherited from class ru.bitel.common.worker.WorkerTask
getLogger, 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:
runImplin 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, jakarta.xml.bind.JAXBException, ru.bitel.bgbilling.common.BGException - Throws:
javax.jms.JMSExceptionjakarta.xml.bind.JAXBExceptionru.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:
notifyin 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
-