【问题标题】:insert data into database after an interval by Java [closed]通过Java在间隔后将数据插入数据库[关闭]
【发布时间】:2013-09-18 12:45:51
【问题描述】:

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

【问题讨论】:

  • 使用ScheduledThreadPoolExecutor
  • @javalover 即使您的问题被搁置,您仍然可以接受答案和/或支持回复:)

标签: java mysql javadb


【解决方案1】:

我会使用 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();

}

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

public someClassConstructor() {

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

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

}

【讨论】:

  • 这是我猜的基本类,我如何在main上实现调用这个构造函数我们需要一个ScheduledExecutorService类型的对象。
  • @javalover 查看更新
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 2012-08-21
    • 2017-06-21
    • 2013-03-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多