2010-09-24 22 views
5

Olayları gözlemlemek için Kaynak kullanıyorum. Gözlemcinin eşzamansız olup olmadığını belirtmenin bir yolu olduğunu düşündüm, ama bu notu veya belgeyi bulamıyorum.Kaynak - Asenkron olay gözlemcileri

Gözlemciler eşzamansız olabilirler, eğer öyleyse, bunun gerçekleşmesi için ne yapmam gerekiyor?

+0

En yakın eşleştirmenin bunu kullanmak olduğunu düşünüyorum: TransactionPhase ile birlikte TransactionalObserverMethodImpl. Bir TransactionPhase'yi başka bir tarihte belirtirseniz, bildirim bir runnable'da ertelenir: http://download.oracle.com/javaee/6/api/javax/enterprise/event/TransactionPhase.html. –

+0

Bununla ilgili tek şikayetlerim, RequestContext'te çalışacak şekilde tasarlanmıştır. Spesifikasyonun bu kısmı mı? –

cevap

5

Bunun için bir istek var: CDI-31: Asynchronous events.

Gereksinimlerinize bağlı olarak, yorumunuzda belirtildiği gibi farklı bir transactional observer ayarlayabilirsiniz: AFTER_COMPLETION veya AFTER_SUCCESS kullanıyorsanız, uygulamanızın senkronize olmayan bir yürütme gibi görünmesi gerekir. Ancak bir çerçeve çözülene kadar, JMS for asynchronous execution in CDI kullanarak bir örnek buldum.

+0

Birileri CDI uzman grubuyla bir hata açmışsa daha iyi olurdu. Belki bunu JEE7'ye alabiliriz! –

1

Bunu görmek istiyorsanız, Kari'nin cevabında verilen bağlantıya gitmeniz ve fikrinizi söylemeniz gerekir. Uzman grup, asenkron olayları eklemeyi düşünmek istemiyor, çünkü spekülasyonu şişirdiğini düşünüyorlar.

Dürüst olmak gerekirse, Guice bu özelliği sunmayı başarıyor ve hafif kalıyor, bu yüzden bu küçük karşı-sezgiye karşı argümanı buluyorum. Yine de, eğer bu özelliği görmek istiyorsanız, linke gidin, fikrinizi dile getirin.

İlgili konular