楼主:
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共存
请问这样算是不正确的做法吗? 我一直觉得这样怪怪的
问题有点多,也可能有点蠢,谢谢大家<(_ _)>
楼主:
gmoz ( This can't do that. )
2016-04-17 00:50:00不是用@PersistenceContext注入吗@@ 还是我搞错名词了我原本是用@ApplicationScoped + @Eager (omnifaces)来达成跟@Singleton的一样效果
我的重点是,都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
请问一下,你为何要用到JTA? 知其然要知其所以然
作者:
Jichang (C.C.Lemon)
2016-04-20 18:56:00可否明识 谢谢
作者:
luoqr (.....)
2016-04-20 19:34:00我觉得你该用的是MDB不过还不太清楚你的目的 所以也只是猜测...@@
楼主:
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跑目的是什么...