后端每20小时后调用java函数

时间:2011-12-22 06:44:09

标签: java mysql timer

我需要调用一个mysql连接,并在每20小时后对存在的连接进行一次虚拟查询,以便连接不会被关闭。这里我需要一个函数调用(这个函数实现一个连接和一个虚拟查询),它独立地运行在后端。请建议在后台运行的定时器函数,并在每20小时后调用一次函数..

4 个答案:

答案 0 :(得分:4)

不是你问题的答案,而是一个有用的提示:

不要使用虚拟查询每20小时触发一次以保持mysql连接保持活动状态。最好使用 连接池 技术。我建议你使用c3p0

如需更多帮助,请参阅此讨论:Connection pooling options with JDBC: DBCP vs C3P0

答案 1 :(得分:1)

你的意思是这样的:

http://docs.oracle.com/javase/1.5.0/docs/api/javax/swing/Timer.html

int delay = 1000 * 60 * 60 * 20; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();

您还可以使用操作系统调度程序(如Linux上的“cron”或Windows上的Task Mgr)。

答案 2 :(得分:1)

看看Quartz。这是一个企业工作调度员。

使用quatz的优点是:

  • 您不必关心任务或线程开发
  • 您需要仅开发需要在定时基础上调用的方法
  • 您可以使用已定义和记录的属性文件配置计划等

缺点是

  • 你引入了开销

答案 3 :(得分:1)

java.util.Timer可以在预定义的时间段安排事件(例如paulsm4提到的计时器,但不需要涉及SWING / AWT)。