SAX数据采集设计模式

时间:2012-01-25 12:41:37

标签: java database collections sax

我是Java开发的新手,正在寻找用Java编写的数据收集应用程序的通用设计模式。 我已经编写了原型,这是一个基本的Java控制台应用程序,它使用SAX检索数据并将其存储在数据库中。

显然,这不是一个Web应用程序,所以它不需要在像Tomcat这样的容器中运行,但人们会推荐什么?该应用程序当前使用基本Java计时器每5分钟运行一次。

所以我能想到的基本要求是

  1. 它需要一直运行,因此如果崩溃,则需要重新启动。
  2. 它需要每5分钟完成一次,所以需要一个计时器。
  3. 可以使用Hibernate,但如果它产生任何开销,则不会,因为这是一个高度的 日期密集型应用程序。
  4. 所以我正在寻找的建议如下:

    你可以在Tomcat下运行一个计时器小部件thingumbob并获得需求#1 ....或者Spring 99具有你需要的所有功能。

1 个答案:

答案 0 :(得分:0)

对于这种类型的应用程序,您可以使用一个主进程来生成执行实际工作的线程。这个线程将在一个循环中,基本上检查它是否应该运行。如果它正在运行它继续。一旦它完成它的工作,你可以使用Thread.sleep(msToSleep)让线程进入睡眠状态5分钟。因此它将进入一个连续的工作和睡眠循环。不需要计时器。主进程可以“ping”线程以查看它是否仍然有效以及它是否未生成新线程。根据操作系统,有类似的技术可确保主进程正在运行。使用像Hibernate这样的ORM会增加开销,因此您必须在事务性能和易开发性之间进行权衡。如果您要自己将数据转换为对象,则必须使用分析器来查看您是否实际上比ORM更有效地实现它。