我在任何时候都执行一项功能。此函数检查数据库的上次更新。当数据库的上次更新大于指定时间时,将发送电子邮件以警告数据库中没有更改。 我想要的是,当你运行一个发送邮件的功能停止另一个我必须每小时运行的功能。
有可能这样做吗?
谢谢。
public void check() {
try {
String sql="SELECT TIME_TO_SEC(TIMEDIFF((select curtime()), (SELECT MAX(hour_saveDB) FROM saves where date_saveDB like curdate())))";
pst=(PreparedStatement) conexao.prepareStatement(sql);
rs=pst.executeQuery();
while( rs.next() ) {
int val = ((Number) rs.getObject(1)).intValue();
if( check != val ) {
check=val;
if( val > 7200 ) {
SendEmail();
}
}
}
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:1)
如果这两个函数是链接的,并且都应该每小时触发一次,那么将它们分组到一个schedduled函数中,该函数调用check()方法返回一个布尔值。
function doTheJobEachHour {
if ( !check() ) {
doSomethingElse()
}
}
答案 1 :(得分:0)
在两个函数之间保留一个共享变量。
然后你可以用它作为
while(rs.next() && isEnabled){
}
答案 2 :(得分:0)
只需保留计时器的引用并使用timer.cancel(); timer.purge();停止你的计时器。