多线程或 cronjob

tor*_*eff 6 java linux multithreading

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

  Run java application every t minutes with cronjob.
Run Code Online (Sandbox Code Playgroud)

或者

Multithreaded java application which is run as daemon.
Run Code Online (Sandbox Code Playgroud)

哪个会更有效率?或者任何可以提供帮助的想法。

应用程序应在 Linux 上运行。

Man*_*qui 3

即使您决定不走 cron 路线,您的 Java 应用程序也可能不需要多线程,除非您最终从头开始构建一个类似Quartz的调度程序(这可能有点过头了)。

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

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