不太熟EJB, 最近玩了一下有些問題想請教@@
假設我有一個Web Application,用了JSF2.2 + EJB 3.1
背景想要固定有thread去爬東西寫進DB
所以我弄了一個
@Singleton
@Startup
public class ParserController
然後由這個ParserContoller去啟多個Thread,
分別定時去不同的地方爬東西
但是有一些不懂得地方想要請教
1. 這種需求是真的起Thread去做嗎?
在容器裡面起自己的Thread好像怪怪的,雖然是@Singleton
2. 承1. 起的Thread因為不是容器管理
所以應該就不能用注射的JTA來取得EntityManger
是否就只能使用手動去建Factory 獲得resouce local的EntityManger?
3. 若不用1+2的做法,而是把parser thread用@Stateless + @Schedule
這樣就能使用JTA的EntityManager了~
但是如果要起多個來跑應該不是像下面這樣搞的吧 囧?
@EJB
ParserThread parseThread1;
@EJB
ParserThread parseThread2;
.....
4. 如果是架構問題,想請問這種背景跑東西的需求正常的作法是什麼0.0
我現在是用1+2的方式去做,
所以persistence.xml就有JTA跟Resource loacl的EntityManger共存
請問這樣算是不正確的做法嗎? 我一直覺得這樣怪怪的
問題有點多,也可能有點蠢,謝謝大家<(_ _)>