我以前使用JBoss 5中的 org.jboss.varia.scheduler.Scheduler 安排了JMX调度的定期批处理作业。这个支持在JBoss 7.1中删除了。
我找到的唯一替代方案是EJB的@schedule注释。但是,不允许在EJB内运行的作业启动线程。必须在多个并行线程中运行此批处理导入作业,以便更有效地使用硬件资源,从而节省数小时的处理时间。
如何在JBoss 7.1中安排可以从多个线程并行调用EJB的作业?
答案 0 :(得分:2)
传统上需要并行执行的方法是使用MDB。 (传统上我记得异步调用,但我认为这是一个新的EJB 3.1特性,因此不适用于JBoss 7.1。)
设置概要如下:
@Schedule
'EJB。当触发@Schedule
'EJB时,它会将适当数量的作业消息推送到队列中。这些将通过容器与MDB实例并行传递和执行。
作为一种(可能无关紧要的)奖励,代码变得标准,并且不依赖于特定的应用服务器API。