Class EventWorker

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
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

    Fields
    Modifier and Type
    Field
    Description
    protected 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

    Constructors
    Modifier
    Constructor
    Description
    protected
    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 Type
    Method
    Description
    abstract Object
    doTask(Object task)
    Выполнение одной задачи (события).
    boolean
    Выполнение задач (одной или нескольких, с ожиданием новых в течении batchWait), нужно вызывать из runWorker().
    protected boolean
     
    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
     
    protected abstract boolean
    Вызывается, когда появляются задачи.
    void
    setConsumer(Class<? extends ru.bitel.bgbilling.kernel.event.common.Event> clazz, String query)
     
    void
     

    Methods inherited from class ru.bitel.common.worker.WorkerTask

    newBlockingFixedThreadPool, newFixedThreadPool, newFixedThreadPool, newScheduledThreadPool, run, runSync, runSync, setContext

    Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

    error, error, error, getLogger, logError, logError

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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

      protected void runImpl() throws Exception
      Specified by:
      runImpl in class ru.bitel.common.worker.WorkerTask<EventListenerContext>
      Throws:
      Exception
    • internalRunWorker

      protected int internalRunWorker(long timeout, boolean wait)
      Parameters:
      timeout -
      wait -
      Returns:
      -1, если произошла ошибка; 0, если ничего не было сделано, 1, если нормально выполнено одно или более заданий.
    • pollFirstTask

      protected Object pollFirstTask()
    • poll

      protected Object poll(long timeout) throws ru.bitel.bgbilling.common.BGException
      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.JMSException
      jakarta.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 interface EventListener<ru.bitel.bgbilling.kernel.event.common.Event>
      Throws:
      ru.bitel.bgbilling.common.BGException
    • doTask

      public abstract Object doTask(Object task) throws ru.bitel.bgbilling.common.BGException
      Выполнение одной задачи (события).
      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