2010-09-24 12 views
5

Estoy usando Soldadura para observar eventos. Pensé que había una manera de especificar si el observador era asíncrono o no, pero no encuentro esa anotación o documentación.Soldadura: observadores de eventos asincrónicos

¿Pueden los observadores ser asíncronos? Si es así, ¿qué debo hacer para que esto ocurra?

+0

Estoy pensando que la coincidencia más cercana que tengo es usar esto: TransactionalObserverMethodImpl junto con TransactionPhase. Si especifico una TransactionPhase que no sea durante, la notificación se aplaza en un ejecutable: http://download.oracle.com/javaee/6/api/javax/enterprise/event/TransactionPhase.html. –

+0

Mi única queja con esto es que está diseñado para ejecutarse en RequestContext. ¿Es eso parte de la especificación? –

Respuesta

5

Hay una solicitud abierta para esto: CDI-31: Asynchronous events.

Dependiendo de sus requisitos, puede, como se indica en su comentario, establecer un transactional observer diferente: Si utiliza AFTER_COMPLETION o AFTER_SUCCESS, su aplicación debería parecer una ejecución asincrónica. Sin embargo, hasta que un marco resuelva, acabo de encontrar un ejemplo usando JMS for asynchronous execution in CDI.

+0

Sería mejor si alguien abrió un error con el grupo de expertos CDI. Tal vez podríamos conseguir esto en JEE7! –

1

Si quieren que esto suceda, deberán pasar por el enlace proporcionado en la respuesta de Kariem y expresar su opinión. Parece que el grupo de expertos no está dispuesto a considerar la adición de eventos asincrónicos porque consideran que aumentan las especificaciones.

Honestamente, Guice se las arregla para ofrecer esta característica, y sigue siendo liviana, así que encuentro el argumento en contra de este pequeño contra-intuitivo. Sin embargo, si desea ver esta característica, diríjase al enlace y exprese su opinión.

-Jonathan

Cuestiones relacionadas