SpringBoot configura AsyncEventBus asíncrono
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)