Tengo aplicaciones web basadas en servlets de Java. Me gustaría implementar algunas operaciones de manera asincrónica, como por ejemplo escribir en un registro.La manera más fácil de realizar operaciones asíncronas en aplicaciones web Java
Me gustaría evitar la sobrecarga de JMS y hacer algo simple.
Administrar hilos por mi cuenta no parece una buena idea en un entorno de servidor, probablemente necesite acceder al grupo de subprocesos del servidor, etc. ¿Cuál es la mejor alternativa para el funcionamiento asincrónico simple?
Editar:
Sólo una aclaración, ya que muchos sugirieron usar log4j u otra biblioteca de registro, escribiendo a una operación de registro es aquí más de un ejemplo. Estoy interesado en cómo realizar de forma asíncrona cualquier operación que no deba realizarse de forma secuencial. Idea es responder al usuario de inmediato y continuar procesando operaciones costosas en otro hilo.
En lo que respecta al problema de registro, tenemos un registro de auditoría que implementamos para escribir una gran cantidad de datos en una base de datos y es utilizado por el usuario durante las operaciones de auditoría y en el servicio de asistencia. Escribir mucha información a DB puede ser muy costoso. Usamos log4j para el registro del sistema y dado que el appender es un apéndice de archivos, no tenemos problemas de rendimiento con nuestro registro del sistema.
Bueno ... ¿necesita la ejecución garantizada de la operación asincrónica o está bien si no se ejecuta si, por ejemplo, el servidor se reinicia? Gran parte de la complejidad de JMS proviene de ofrecer recuperación en tales situaciones. – meriton
Buena pregunta. Supongo que no necesita estar más "garantizado" de lo que es hoy en día, cuando se realiza sincrónicamente. Por ejemplo, si DB para mi registro de auditoría no está disponible por alguna razón, el error se producirá con la entrada en el registro de mi sistema. El cierre del servidor es un escenario de esquina interesante. Supongo que en ese caso podría decirle a un usuario: corte el tráfico y espere hasta que no haya mensajes en la cola antes de apagar el servidor. Un servlet simple que muestra el conteo de mensajes podría hacer ... – Dan