EJB o Servlet - Cómo agregar un 'interruptor de matanza' para forzar un proceso / hilo para detener

StackOverflow https://stackoverflow.com/questions/3283768

  •  17-09-2020
  •  | 
  •  

Pregunta

Una especie de pregunta abierta en la que me encuentro de vez en cuando, si tiene un frijol de estado o apátrida de EJB, o posiblemente un proceso de servidor directo, que pueda con los parámetros incorrectos comenzar a funcionar largos en un sistema de producción, cómo¿Podría agregar efectivamente en un 'interruptor de matanza' manual para un administrador / persona para matar específicamente ese hilo / proceso?

¿Fue útil?

Solución

No puede, o al menos no debería, interferir con las hilos del servidor de aplicaciones directamente.Por lo tanto, un "interruptor de muerte" se ve definitivamente inapropiado para mí en un ambiente de Java EE.

Sin embargo, entiendo el problema que tiene, pero preferiría sugerir un enfoque asíncrono donde dividió su trabajo en una unidad de trabajo más pequeña.

Hice que usando los temporizadores EJB y estaba contento con el resultado: se crea un temporizador inicial para la primera unidad de trabajo.Cuando la aplicaciónEl servidor ejecuta el temporizador, luego se registra como segundo que corresponde a la segunda unidad de trabajo, etc. La información puede pasar forman una unidad de trabajo a la otra, ya que los temporizadores EJB admiten el almacenamiento de información personalizada.Además, la ejecución y el registro del temporizador son transaccionales, lo que está bien para trabajar con la base de datos.Incluso puede apagar y reiniciar la aplicación sever con este enfoque.Antes de que cada unidad de trabajo haya corrido, nos registramos en la base de datos si el trabajo se había cancelado mientras tanto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top