[J2EE] EJB 關於EntityManager與一些問題

作者: gmoz ( This can't do that. )   2016-04-16 14:41:03
不太熟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共存
請問這樣算是不正確的做法嗎? 我一直覺得這樣怪怪的
問題有點多,也可能有點蠢,謝謝大家<(_ _)>
作者: Lordaeron (Terry)   2016-04-16 23:47:00
singleton 還要JTA?
作者: gmoz ( This can't do that. )   2016-04-17 00:50:00
不是用@PersistenceContext注入嗎@@ 還是我搞錯名詞了我原本是用@ApplicationScoped + @Eager (omnifaces)來達成跟@Singleton的一樣效果
作者: Lordaeron (Terry)   2016-04-17 10:10:00
我的重點是,都SINGLETON了,何需搞哪麼多事?寫JAVA的人就愛搞一堆新花樣,但沒想清楚是否需要用.
作者: gmoz ( This can't do that. )   2016-04-17 12:59:00
那SINGLETON要使用DB的話 怎麼使用比較好呢?還是說不該這樣設計@@?查了一下應該是我的觀念問題 謝謝L大提醒
作者: Jichang (C.C.Lemon)   2016-04-19 00:24:00
請問一下 singleton 為什麼不用 jta
作者: Lordaeron (Terry)   2016-04-19 15:25:00
請問一下,你為何要用到JTA? 知其然要知其所以然
作者: Jichang (C.C.Lemon)   2016-04-20 18:56:00
可否明識 謝謝
作者: luoqr (.....)   2016-04-20 19:34:00
我覺得你該用的是MDB不過還不太清楚你的目的 所以也只是猜測...@@
作者: Lordaeron (Terry)   2016-04-21 10:10:00
如果連用JTA的用意都沒搞清楚,哪要如何明呢?
作者: gmoz ( This can't do that. )   2016-04-21 16:01:00
因為只是想要背景去PING東西而已 用MDB會不會太牛刀@@?目前手上一些東西都有背景跑東西的需求 不過不想要分兩隻QQ所以就直接掛在WEB AP裡面了
作者: luoqr (.....)   2016-05-04 20:12:00
要起多個thread又用單一EJB跑目的是什麼...

Links booklink

Contact Us: admin [ a t ] ucptt.com