我是Java开发的新手,正在寻找用Java编写的数据收集应用程序的通用设计模式。 我已经编写了原型,这是一个基本的Java控制台应用程序,它使用SAX检索数据并将其存储在数据库中。
显然,这不是一个Web应用程序,所以它不需要在像Tomcat这样的容器中运行,但人们会推荐什么?该应用程序当前使用基本Java计时器每5分钟运行一次。
所以我能想到的基本要求是
所以我正在寻找的建议如下:
你可以在Tomcat下运行一个计时器小部件thingumbob并获得需求#1 ....或者Spring 99具有你需要的所有功能。
等
答案 0 :(得分:0)
对于这种类型的应用程序,您可以使用一个主进程来生成执行实际工作的线程。这个线程将在一个循环中,基本上检查它是否应该运行。如果它正在运行它继续。一旦它完成它的工作,你可以使用Thread.sleep(msToSleep)让线程进入睡眠状态5分钟。因此它将进入一个连续的工作和睡眠循环。不需要计时器。主进程可以“ping”线程以查看它是否仍然有效以及它是否未生成新线程。根据操作系统,有类似的技术可确保主进程正在运行。使用像Hibernate这样的ORM会增加开销,因此您必须在事务性能和易开发性之间进行权衡。如果您要自己将数据转换为对象,则必须使用分析器来查看您是否实际上比ORM更有效地实现它。