如何从另一个函数停止java函数?

时间:2014-06-16 10:06:27

标签: java

我在任何时候都执行一项功能。此函数检查数据库的上次更新。当数据库的上次更新大于指定时间时,将发送电子邮件以警告数据库中没有更改。 我想要的是,当你运行一个发送邮件的功能停止另一个我必须每小时运行的功能。

有可能这样做吗?

谢谢。

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);
    }
}

3 个答案:

答案 0 :(得分:1)

如果这两个函数是链接的,并且都应该每小时触发一次,那么将它们分组到一个schedduled函数中,该函数调用check()方法返回一个布尔值。

function doTheJobEachHour {
if ( !check() ) {
    doSomethingElse()
    }
}

答案 1 :(得分:0)

在两个函数之间保留一个共享变量。

然后你可以用它作为

while(rs.next() && isEnabled){

}

答案 2 :(得分:0)

只需保留计时器的引用并使用timer.cancel(); timer.purge();停止你的计时器。