0

我有一个工作的 java 程序,它在用户输入并处理它们的文件夹中获取一组文件。

现在用户不需要他们的干预。他们希望程序每 30 分钟运行一次,并从预先确定的路径处理文件。

当我用谷歌搜索它时,我知道我应该使用调度程序。那么我们应该使用特定于操作系统的调度程序还是 Java 调度程序?以及如何使用推荐的那个?

同样在系统重新启动时,该过程应自动启动。

提前致谢。哈沙

4

3 回答 3

1

简单的方法是使用TimerTask. 在我的示例中,您的操作将每 30 分钟运行一次。

public class Schedular extends TimerTask {
    @Override
    public void run() {
        // your operation
    }

    public void start() {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(this, 5 *  1000 , 60 * 30 * 1000);
    }

    public static void main(String[] args) {
        Schedular schedular = new Schedular();
        schedular.start();
    }
}
于 2012-11-01T06:05:10.940 回答
0

处理这个问题的最简单方法可能是创建一个 cron 作业。好处是它的简单性和“标准化”,即。人们知道在哪里寻找经常性工作。缺点是您为程序正常运行创建了另一个依赖项。如果您确实创建了一个 cron 条目,请记住您的 java 程序应该以无状态方式设计。 http://en.wikipedia.org/wiki/Cron

于 2012-11-01T06:06:29.707 回答
0

如果系统或多或少总是启动,请使用 Java 调度程序(谷歌如何使用 Executor/TimerTask)。如果您需要在系统重新启动时自动启动该进程,则需要走操作系统特定的路线。

对于 Windows,安排一个服务每 30 分钟运行一次您的 java 程序(参见http://windows.microsoft.com/en-US/windows7/schedule-a-task示例)。您基本上需要运行“java -cp {some classpath} {your program}”

对于基于 Unix 的系统,设置一个每 30 分钟调用一次 java 程序的 cron 作业。

于 2012-11-01T06:08:10.663 回答