0

我在 Windows 机器中有一个 .bat 文件,它通过调用 Java 可执行文件(.Jar)的主类来启动我们的程序

现在我需要每 30 分钟运行一次。

我经历了几种方法,但无法决定哪种方法更好。

通过 Windows 调度程序或使用 Java 计时器进行调度。选择哪一个?我只想运行一个进程实例。如果前面的过程没有在 30 分钟内完成,我可以等待。

请根据我的用例告诉我要做什么。

提前致谢。

4

2 回答 2

0

TimerTask不是一个调度系统,它是一个为应用内调度提供工具的库。似乎对于您的用例,您需要一个系统:无论您的应用程序是否正在运行,您需要报告等,您都需要它来运行。Windows 调度程序(或unix/linux 上的cron)更适合您的需求。

于 2012-11-01T14:22:06.160 回答
0

您最好使用 Windows 调度程序。如果确实存在进程耗时过长的风险,您可以创建一个文件,或在进程运行时打开一个套接字,当另一个进程尝试启动时,它可以检测到并简单地退出。这将使它“错过” 30m 窗口(即,如果第一个作业在 12 点开始并在 12:35 完成,则下一个作业要到 1 点才会开始)。

但是这样一来,您就不必担心设置长时间运行的进程、启动和停止 java 服务等。Windows 调度程序只是让这样的事情变得更容易。

于 2012-11-01T14:21:27.630 回答