0

我正在使用带有 hibernate、spring 和 jpa 的 glassfish 来获取进入我们系统并向客户显示数据的数据。

但是,我还需要每分钟运行多个作业以根据传入数据计算数据。

但我永远不知道工作的数量,因为它们来自数据库,所以它们可以随时更改。我们有 x 个客户,每个客户可以有 1 到多个工作。

所以我真正需要做的是:

  1. 从表中读取以获取要运行的作业数
  2. 每分钟运行这些作业
  3. 如果从表中删除作业,则停止处理该作业
  4. 如果将作业添加到表中,则将新作业添加到列表中。
  5. 这些作业中的每一个都将从表中读取,进行一些计算,然后将结果写入表中。

我已经阅读了一些工具(石英、ScheduledExecutorService 等),但有没有真正提供这个功能?还是我必须自己写?

4

1 回答 1

0

我将从spring的TaskScheduler开始:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling-task-scheduler

但是无论你使用什么,你都必须编写一个重要的代码来支持所有这些。您必须支持诸如在服务器启动时加载所有任务、确保任务仅在一台服务器上运行(如果应用程序部署到多个 glassshish 实例)、监控数据库表以查找已删除的用户/作业等。

于 2013-07-04T18:54:48.347 回答