2016-04-14 45 views
0

Veritabanı işlemleri gerçekleştiren bir zaman uyumsuz görevim var. Bu birkaç dakika sürebilir.Java - Sıralı async yürütmeleri

public void doSomeStuff() { 
    // 10 minutes of database magic 
} 

nedeniyle veritabanı tarafında mümkün eşzamanlılık sorunlara bağlı olarak, (bir tekil gibi), aynı zamanda, bu yöntemin tek olmayan yürütme olmalıdır. Ayrıca, yöntem zaten çalışıyorsa, sonraki çağrı atılmayacaktır, ancak önceki çağrı bitince hatırlanır ve yürütülür. Aynı kuyruk gibi.

@Asynchronous ve @ConcurrencyManagement(...) ek açıklamalarını araştırdım, ancak gerekli denetimi sağlamadılar.

Bunu JavaEE 7'de JBoss EAP 6 (+ JSF) ile nasıl yapabilirim?

+1

Senkronize yöntemi mi işaretleyin? – Ferrybig

cevap

1

@Asynchronous yöntemiyle @Stateless fasulye kullanabilirsiniz.

Daha sonra, fasulye tarafından kullanılan iplik havuzunu @Pool(<pool name>) no'lu ek açıklama ile ayarlayabilirsiniz. Havuz boyutunu 1 ile sınırlarsanız, ihtiyacınız olana sahip olursunuz.