Principio de funcionamiento de Esper
Lógica de generación de reglas
Código relacionado : com.espertech.esper.core.service.EPAdministratorImpl
Lógica relacionada con el procesamiento de sentencias de filtro: com.espertech.esper.filter
Vea la lógica relacionada con la creación y el procesamiento: com.espertech.esper.view
Cree una regla llamando al método epService.getEPAdministrator (). CreateEPL ().
Al crear una nueva regla, esper analizará la declaración epl, generará un objeto EPStatement e iniciará la regla. Durante el proceso de inicio de la regla, la instrucción de filtro en la regla se extraerá y convertirá en un FilterValueSet, que se guardará en el motor para el posterior procesamiento de verificación de coincidencia.
Para las reglas categoría estadística, estamos utilizando E xternally-temporizado la ventana . Además de procesar las declaraciones de filtro, también se mantiene un ExternallyTimedWindowView dentro del objeto EPStatement. Hay un objeto TimeWindow dentro y hay una cola incorporada para guardar datos.
procesamiento de declaración de filtro
Reglas de estadísticas, crear vista
Lógica de procesamiento de eventos
Código relacionado : com.espertech.esper.core.service.EPRuntimeImpl
Lógica relacionada con el procesamiento de agregación; com.espertech.esper.epl.agg.service
Envíe el evento llamando al método epService.getEPRuntime (). SendEvent ().
Para las reglas de plantilla ordinarias, cuando se produce un evento, recorre el objeto de filtro en el motor actual para encontrar las reglas de la coincidencia. Luego, repite todas las reglas de la coincidencia, procesa, extrae el resultado de las reglas, activa la función de devolución de llamada y finaliza el proceso .
Reglas estadísticas, cuando llega un evento, el flujo de procesamiento anterior es similar a uno a uno, pero durante el procesamiento de coincidencias, los datos caducados en la cola se limpian en tiempo real de acuerdo con la función de tiempo, se escriben nuevos datos y el resultado de la agregación se actualiza al mismo tiempo. Cuando el resultado de la agregación cumple las condiciones, se activa la función de devolución de llamada y finaliza el procesamiento.
Procesamiento de evento de plantilla común
Procesamiento de eventos en la parte de vista de la plantilla estadística