Exportación manual events a través de un SendConnector
Aquí estamos utilizando Conectores para suscribirse a un conjunto de events, conviértalos a un formato propietario, luego envíelos a través de algún medio de transporte:
var connector = new SendConnector. Builder<IPFSystemEvent<?>, String>("eventSendConnector")
.withTargetTypeConverter(evt -> String.format("{'eventName': '%s', 'createdAt':'%s'}", evt.getName(), evt.getCreatedAt().toString()))
.withTransportMessageConverter(TransportMessage::new)
.withConnectorTransport(connectorTransport)
.build();
eventBus.subscribe(new EventProcessor() {
@Override
public Predicate<IPFSystemEvent<?>> predicate() {
return evt -> evt.getLevel() == EventLevel. ERROR;
}
@Override
public void notify(IPFSystemEvent<?> event) {
connector.send(event.getMessageAssociation(), event);
}
});
Primero creamos el conector con:
-
Una forma de convertir el event a un tipo de objetivo (
withTargetTypeConverter)- en este caso un ejemplo JSON carga útil -
Una forma de convertir el tipo de destino en un mensaje para enviar a través del transporte (
withTransportMessageConverter) -
A
ConnectorTransport- JMS, Kafka y HTTP son compatibles, pero usted puede escribir los suyos también