Weblogic Server 11g上的自定义线程

我的weblogic服务器上需要一个自定义的threda; 我不能使用TimerEJB或Delayed MDB,因为我必须使用3d库。

我知道不鼓励应用服务器上的自定义线程 ; 这里有一篇相关的post(4岁): 为什么不鼓励在Java EE容器中产生线程?

它仍然气馁吗? 我可以使用ExecutorService或Quartz吗? 或者我只考虑commonj和工人经理?

在Weblogic 11g(EJB3.0)上,我们应该使用你应该使用的“自己的线程执行器”(参见Java EE规范和multithreading ):

  • TimerService

例:

 MyEjb { @Stateless public class TimerBean implements TimerRemote { @Resource TimerService service; @Override public void startTimer() { Timer timer = service.createTimer(1000, 1000, null); System.out.println("Timers set"); } @Timeout public void handleTimeout(Timer timer) { System.out.println("Handle timeout event here..."); } } 
  • 延迟的MDB
  • WorkManager中

**如果您不能使用Deleyed MDB或TimerService,您需要使用Work Manager **。

Weblogic和Websphere兼容CommonJ( JSR 237 Timer&WorkManager); 换句话说,他们使用通用界面与工作经理合作; 在weblogic中,工作管理器规范线程的生命周期(Servlet,EJB,MDB,…,自定义线程)。

恕我直言不使用ExecutorService因为不受weblogic的控制:如果你停止应用程序(不是服务器),weblogic控制下的线程将停止,其他线程不应该终止; 我遇到了这个问题。

工作经理

WebLogic Server中的WorkManagerfunction本质上是动态的,基于传入请求的数量,线程池大小会自动重新resize以最大化吞吐量。 要使用WorkManager,您可以通过commonj接口或MBean进行访问。

例:

 InitialContext ic = new InitialContext(); commonj.work.WorkManager wm = (WorkManager); ic.lookup('java:comp/env/wm/default'); // default work manager 

弹簧

例如,spring有一种简单的方法可以将自己的TaskExecutor附加到comonj worker manager:

    

石英

Quartz适用于应用程序服务器 ,使用spring可以使用工作管理器

JAVA EE 7

JEE7引入了Batch ( JSR 352 )。 Java平台API(批处理)的批处理应用程序为批处理应用程序和用于调度和执行作业的运行时提供编程模型。

执行人服务

来自java规范:

Java EE 7平台的另一个新function是Batch API,它为批处理应用程序提供编程模型,为调度和执行作业提供运行时,以及Concurrency Utilities API,它通过托管执行程序服务,托管预定执行程序提供异步function。 。

在JEE7中,Executor Service已经使用ManagedExecutorServiceManagedThreadFactory进行了扩展。

例:

  javax.naming.InitialContext ctx = new InitialContext(); ManagedExecutorService mes = (ManagedExecutorService) ctx.lookup("java:comp/env/concurrent/ThreadPool"); // Create a set of tasks to perform the account retrieval. ArrayList> retrieverTasks = new ArrayList>(); retrieverTasks.add(new MyCallable()); 

结论:Weblogic

请参阅http://www.oracle.com/technetwork/java/restrictions-142267.html