如何在大型javaee项目中处理计时器服务?

时间:2014-01-24 11:01:59

标签: java-ee ejb-3.1

我正在构建一个包含对项目出价的系统。因此,拍卖的每件商品都有超时。我的问题是,由于系统将被许多用户访问并且拍卖中有很多项目,使用ejb计时器服务会对系统的性能产生很大影响吗?如果是这样,处理这种情况的最佳方法是什么?任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:2)

我目前正在研究这本EJB3 In Action书,本书中有一本关于计时器的有用摘录。总而言之,如果您需要更复杂的计时器配置,最好选择更强大的计时器服务,如下所述。但是,如果您需要简单的日常例程,EJB3计时器就足够了。性能不会成为问题,因为Timer提供了Timer服务。

  

在Java EE世界中,您有几个选项来安排任务和   活动。大多数Java EE应用程序服务器都带有调度   实用性足够有用。还有一些   功能丰富的全面调度包可供企业使用   应用。 Flux是一个出色的商业调度包,   而Quartz是一个优质的开源实现。 EJB计时器   服务是调度的标准Java EE答案。你很快就会   学习,虽然它不试图与全面调度竞争   对于大多数产品而言,EJB 3计时器服务可能就足够了   日常应用程序开发要求。因为它是如此   轻巧,服务也非常容易使用。

答案 1 :(得分:1)

  

使用ejb计时器服务会对系统性能产生很大影响吗?

在处理方面,它对于app服务器来说非常便宜,控制en ejb计时器的生命周期,基本上这是评估定义的时间条件是否已经过期,然后调用timeout()回调方法。

问题在执行您编写的代码时开始,以便解决您的业务需求。这是性能问题出现的地方。

我不知道您打算如何使用计时器服务,但我想象的是一个ejb计时器,每1秒钟调用一次为您的服务/业务层提供的服务,该服务知道如何识别出价已过期并与他们做点什么。

如何设计此服务会影响性能而不影响ejb计时器本身。