Red de conocimiento informático - Problemas con los teléfonos móviles - SpringBoot configura AsyncEventBus asíncrono

SpringBoot configura AsyncEventBus asíncrono

1-Antes de usarlo, averigüémoslo:

Hay diferentes tipos de operaciones de eventos en Guava: 1-EventBus sincrónico 2-Asincrónico: AsyncEventBus

Hagamos esto Explica el uso de asincrónico:

2-Configurar el hilo para que se controle a sí mismo

@Bean

public AsyncEventBusasyncEventBus() {

// Crear un Grupo de subprocesos, el número de subprocesos principales es 3, el número máximo de subprocesos es 10, configure la estrategia DiscardPolicy

ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(3, 10, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<> ( 10), new ThreadPoolExecutor.DiscardPolicy());

return new AsyncEventBus(threadPoolExecutor);

}

3 - Regístrese para: por ejemplo, asíncrono registro de registros

@Component

clase pública AsyncEventListener {

AsyncEventBusasyncEventBus privado;

?AsyncEventListener(AsyncEventBus asyncEventBus, SysLoginLogService sysLoginLogService) {

this.asyncEventBus = asyncEventBus;

this.sysLoginLogService = sysLoginLogService;

?}

/**

?* Registre este oyente

*/

?@PostConstruct

public void Register() {

asyncEventBus.register(this);

}

/**

* Agregar información de registro de inicio de sesión

* @param sysLoginLog loginLog

*/

@Subscribe

public void addLoginLog(SysLoginLog sysLoginLog) {

sysLoginLogService.save( sysLoginLog);

}

}

4- ¿Llamar a cada interfaz? Utilice publicación asincrónica

AsyncEventBus asyncEventBus;

asyncEventBus.post(sysLoginLog)