Java的持久延迟作业队列

时间:2010-07-22 08:37:25

标签: java

我正在寻找一个现有的系统来取代现有的缓慢而复杂的自编工作管理机制。 现有系统:

  • 1个带有大量作业表的MySQL数据库 - 队列
  • 多个服务器(用java编写)都从队列中提取作业并处理它们
  • 处理后的作业可能不会从队列中删除,以后再重新运行
  • 作业可能会创建其他作业并将其插入队列

限制:

  • 随着越来越多的作业被创建并插入到队列中,从中提取作业需要更长的时间。 (工作按优先级和类型选择) - 创建瓶颈

我正在寻找可以取代这个系统的现有系统,并提高它的性能。 有什么建议吗?

由于

2 个答案:

答案 0 :(得分:2)

我一般不推荐使用JMS,但听起来它确实就是你需要的。分布式,事务性,持久性作业队列管理就是JMS的全部内容。

流行的开源实现包括HornetQActiveMQ

答案 1 :(得分:2)

你可以:

正是我们所做的,使用EC2 Spot instances来降低成本。这就是我所说的严肃的云计算;)