多线程或cronjob

时间:2012-12-13 04:09:00

标签: java linux multithreading

我有包含xml文件的文件夹。文件夹的内容每天更新(插入新的xml文件)为N个文件。我想编写java程序,它将从文件夹中获取最新文件并对这些文件进行一些操作。我有两种方法可以做到这一点:

  Run java application every t minutes with cronjob.

Multithreaded java application which is run as daemon.

哪个会更有效率?或者任何有用的想法。

应用程序应该在Linux上运行。

1 个答案:

答案 0 :(得分:1)

即使您决定不使用cron路由,您的Java应用程序也可能不需要多线程,除非您最终从头开始构建Quartz - 类似的调度程序(这可能是过度杀伤)。

我建议采用cron方法有几个原因:

  1. Cron适合您提供的要求(即定期执行,而不需要在收到文件后立即处理)。
  2. 如果您自己编写逻辑而不是依赖于经过测试的cron,那么您更有可能在调度方面遇到错误。
  3. 如果您使用cron并且您的Java应用程序由于某种原因而崩溃,那么它不会影响后续执行。但是,如果您决定使用长时间运行的Java守护程序,则可能必须实现一种机制来监视其运行状况。