1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuzhigang01-eventx

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

xsimple: занимается разработкой простых программных компонентов на Java. Девиз: «Простота — это красота!»

eventx: простой асинхронный компонент обработки событий на Java, использующий пул потоков с приоритетной очередью. Особенности: простота и удобство использования.

Можно устанавливать приоритеты для событий. После завершения обработки одной задачи приоритет ожидающих задач повышается. Достигается баланс между приоритетом задачи и временем её создания.

Основные компоненты:

  • класс отправки события EventX;
  • диспетчер событий EventDispatcher;
  • обработчик событий EventHandler.

Процесс использования:

  1. Импортировать jar:
<dependency>
    <groupId>com.feixc.xsimple</groupId>
    <artifactId>eventx</artifactId>
    <version>1.0.0</version>
</dependency>
  1. Написать код обработки события:
package xxx.yyy.zzz;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.feixc.xsimple.eventx.BaseEventHandler;
import com.feixc.xsimple.eventx.Event;
import com.feixc.xsimple.eventx.EventHandler;
import com.feixc.xsimple.eventx.EventPriority;

@EventHandler("/test")
public class TestHandler extends BaseEventHandler {

    @Event("aa")
    public void aa(Map<String, Object> params) {
        String a = getParam(params, "a", String.class, true);
        int b = getParam(params, "b", Integer.class, true);
        Long c = getParam(params, "c", Long.class, false);
        Boolean d = getParam(params, "d", Boolean.class, false);

        // do something
    }

    @Event(value = "bb", priority = EventPriority.MIDDLE)
    public void bb(Map<String, Object> params) {
        // do something
    }

    @Event(value = "cc", priority = EventPriority.LOW)
    public void cc(Map<String, Object> params) {
        // do something
    }
}
  1. Инициализировать диспетчер событий — EventDispatcher. В коде инициализация происходит один раз, параметр — имя пакета класса обработчика событий: EventDispatcher.init("xxx.yyy.zzz")

Или в файле конфигурации Spring:

<bean id="eventDispatcher" class="org.opensource.xsimple.eventx.EventDispatcher">
    <constructor name="handlerPackage" value="xxx.yyy.zzz" />
</bean>
  1. Отправить событие в коде:
Map<String, Object> params = new HashMap<String, Object>();
params.put("a", "aaaaaaaaaa");
params.put("b", 1234);
params.put("c", 0);
params.put("d", true);

EventX.sendEvent("/test/aa", params);

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xuzhigang01-eventx.git
git@api.gitlife.ru:oschina-mirror/xuzhigang01-eventx.git
oschina-mirror
xuzhigang01-eventx
xuzhigang01-eventx
master