[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