在Java间隔后将数据插入数据库

时间:2013-09-13 18:30:17

标签: java mysql javadb

我需要在java中构建一个程序,它会在每10分钟后将数据插入到mysql数据库中。只要用户终止程序,这将继续。我需要Thread来构建程序吗?请建议每10分钟后自动调用的引用或代码块。

2 个答案:

答案 0 :(得分:0)

您可以使用Timer Task来实现它。

  

可以安排一次性或重复执行的任务   计时器。

答案 1 :(得分:0)

我会使用java.util.concurrent.*软件包,因为它更新更好用于线程化(所有定时器/延迟都需要实现才能阻止你的程序)

此示例将执行您的任务,然后自动重新安排自己......很好! (try / finally块确保没有异常会破坏我们的日程安排):

import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

class Task implements Runnable {

    long untilNextInvocation = 60000; // 1 minute == 60000 milliseconds

    private final ScheduledExecutorService service;

    public Task(ScheduledExecutorService service) {

        this.service = service;

    }

    @Override
    public void run() {

        try {

                // do your stuff here

        } finally {

            service.schedule(new Task(service), untilNextInvocation, TimeUnit.MILLISECONDS);

        }

    }

}

UPDATE --

如何调用:

public static void main(String[] args) {

    // set 3 available threads
    ScheduledExecutorService service = Executors.newScheduledThreadPool(3);

    // kick off service
    new Task(service).run();

}

OR

您可以从对象构造函数中调用它:

public someClassConstructor() {

    // set 3 available threads
    ScheduledExecutorService service = Executors.newScheduledThreadPool(3);

    // kick off service
    new Task(service).run();

}