¿Cuál es la mejor práctica para administrar grupos de subprocesos en un contenedor?

Necesito ser capaz de lograr dos tareas de subprocesamiento en un contenedor y necesito comprender las mejores prácticas para hacerlo. Estas son las dos clases de tareas que necesito realizar:

  1. Durante una llamada a servicios web, necesito iniciar un hilo que continúa procesándose después de que se haya enviado la respuesta. No se requiere ningún mensaje para el remitente original cuando se completa el procesamiento.
  2. Una llamada de servicios web puede necesitar generar múltiples subprocesos que deben ejecutarse en paralelo entre sí. La respuesta a la solicitud original debe bloquearse hasta que todos los trabajadores hayan completado. Los elementos de la respuesta se extraerán de partes de cada uno de los resultados del hilo.

Por supuesto, podría crear mi propia instancia de a java.util.concurrent.Executory usarla, pero sospecho que los contenedores pueden ser lo suficientemente inteligentes como para proporcionar uno que administren.

FWIW: estoy usando WebSphere 6.1 en JDK 1.5.0 (lo sé, antiguo ... pero es lo que es). Estoy ejecutando servicios web desarrollados con Apache CXF, así que estoy en el contenedor de servlets, pero configurado con Spring.

Respuesta 1

Para 1) es posible que desee mirar frijoles asincrónicos. Alternativamente, use un bean controlado por mensaje que recoge y ejecuta un mensaje que envía a una cola. También hay cosas de cuarzo de Spring que quizás quieras ver. Creo que con Servlet 3 (¡no hay posibilidad en WAS 6.1!) Podría obtener el soporte asíncrono sin el enfoque Async Work Manager o JMS, pero hasta entonces no conozco una mejor manera que estos patrones.

Para 2), generalmente, bloquear la solicitud es un negocio arriesgado (¿qué pasa si llega al tiempo de espera?). Sin embargo, está en el contenedor de servlets, por lo que está bien usando algo de java.util.concurrent, por ejemplo, ExecutorService como mencionó. Alternativamente, use la mensajería para enviar el trabajo a otro lugar y bloquear hasta que se complete.

Respuesta: 2

Estaba tratando de llamar a un servicio web .net con el SDK de Android, que era simple usando la biblioteca ksoap2, incluyendo pasar y obtener tipos complejos. Sin embargo, me enfrenté a un problema más complicado, el ...

¿Es posible obtener acceso al shell para hacer un netsend desde java? ¿Para que pueda enviar una alerta a la pantalla de una PC en una IP en particular?

Me gustaría saber si ya hay algo disponible en Java, que me permitirá enviar una acción si la acción no coincide con la restricción, luego descartar la acción, de lo contrario ejecutar el ...

Tengo un JApplet que contiene un JEditorPane. JEditorPane tiene un texto de información sobre herramientas asociado. La primera vez que se carga el applet, la información sobre herramientas se muestra correctamente, pero después de hacer clic en ...