我有一个工作的java程序,它将一组文件放在用户输入和处理它们的文件夹中。
现在用户不需要他们的干预。他们希望程序每30分钟运行一次,并从预先确定的路径处理文件。
当我用谷歌搜索它时,我知道我应该使用调度程序。那么我们应该选择特定于操作系统的调度程序还是Java调度程序? 以及如何使用推荐的那个?
同样在系统重启时,该过程应自动启动。
提前致谢。 戒日
答案 0 :(得分: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();
}
}
答案 1 :(得分:0)
处理此问题的最简单方法可能是创建一个cron作业。好处是它的简单性和“标准化”即。人们知道在哪里寻找经常性的工作。缺点是你已经为程序创建了另一个依赖项,以便正常运行。如果您确实创建了一个cron条目,请记住您的java程序应该以无状态方式设计。 http://en.wikipedia.org/wiki/Cron
答案 2 :(得分: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作业。