通过Java在间隔后将数据插入数据库[关闭]
Posted
技术标签:
【中文标题】通过Java在间隔后将数据插入数据库[关闭]【英文标题】:insert data into database after an interval by Java [closed] 【发布时间】:2013-09-18 12:45:51 【问题描述】:我需要在 java 中构建一个程序,它会在每 10 分钟后将数据插入 mysql 数据库。只要用户终止程序,这将继续。我需要 Thread 来构建程序吗?请建议参考或每 10 分钟自动调用的代码块。
【问题讨论】:
使用ScheduledThreadPoolExecutor
。
@javalover 即使您的问题被搁置,您仍然可以接受答案和/或支持回复:)
【参考方案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 来实现它。
可以安排一次或重复执行的任务 计时器。
【讨论】:
以上是关于通过Java在间隔后将数据插入数据库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在展平嵌套字段后将数据从一个 bigquery 表流式插入到另一个表?