Saltar al contenido

Spring Boot: la mejor manera de iniciar un subproceso en segundo plano en la implementación

Haz todo lo posible por comprender el código de forma correcta antes de aplicarlo a tu trabajo si tdeseas aportar algo puedes decirlo en los comentarios.

Solución:

No se llama al método principal cuando se implementa la aplicación en un servidor de aplicaciones no incorporado. La forma más sencilla de iniciar un hilo es hacerlo desde el constructor de beans. También es una buena idea limpiar el hilo cuando el contexto está cerrado, por ejemplo:

@Component
class EventSubscriber implements DisposableBean, Runnable 

    private Thread thread;
    private volatile boolean someCondition;

    EventSubscriber()
        this.thread = new Thread(this);
        this.thread.start();
    

    @Override
    public void run()
        while(someCondition)
            doStuff();
        
    

    @Override
    public void destroy()
        someCondition = false;
    


Podrías tener un frijol que implementa ApplicationListener Es onApplicationEvent se llamará simplemente inicie su hilo allí si aún no se ha iniciado. Creo que quieres el ApplicationReadyEvent por cierto.

Editar
¿Cómo agregar un enlace al evento de inicialización del contexto de la aplicación?

@Component
public class FooBar implements ApplicationListener 

    Thread t = new Thread();

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) 
        if (!t.isAlive()) 
            t.start();
        
    

Comentarios y puntuaciones

Si piensas que te ha sido de ayuda nuestro artículo, te agradeceríamos que lo compartas con otros entusiastas de la programación de este modo nos ayudas a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *