[英]How to create threads in Java EE environment?
我有一个要求,我必须在表中保留一些数据,持久可能需要一些时间。 基本上我想坚持一个日志。 我不希望执行等到持续完成。
我知道我必须使用线程来完成这项任务,我知道不鼓励在企业应用程序中创建线程。
所以我开始阅读有关工作管理器的知识,并在websphere应用服务器8.5中理解并尝试了一个示例程序。
我在websphere中使用了asynchbeans.jar,现在我很困扰我正在编写特定于供应商的代码。
然后我遇到了在Oracle java文档中描述的commonj work api。 现在我想使用fabric3的commonj api。
我怀疑的是,有没有更好的方法来完成同样的任务? 一种EJB方式? 或者工作经理对我的要求有好处吗?
你有一些选择:
@Asynchronous
方法。 需要使用EJB(某些不需要的复杂性)。 lookup("java:...")
,JPA,UserTransaction等),那么您应该没问题。 JavaEE7有托管执行程序,您可以尝试。 您可以使用它生成任务,并在处理程序中接收托管回调。 这是EE标准的一部分,应该与平台无关。
在这里查看JDoc:
http://docs.oracle.com/javaee/7/api/javax/enterprise/concurrent/ManagedExecutorService.html
如果您需要确保所有日志条目都是安全编写的,那么您可能应该将JMS与持久性消息一起使用。 否则,您可以使用@Asynchronous
EJB方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.