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

如何从另一个函数停止java函数?,java,Java,我在任何时候都执行一项功能。此函数用于检查数据库的上次更新。当数据库的上次更新大于指定时间时,将发送一封电子邮件,警告数据库中没有任何更改。 我想要的是,当你运行一个发送邮件的函数时,停止另一个我也必须每小时运行的函数 有可能这样做吗 多谢各位 public void check() { try { String sql="SELECT TIME_TO_SEC(TIMEDIFF((select curtime()), (SELECT MAX(hour_saveDB) FR

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

有可能这样做吗

多谢各位

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

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

然后你就可以把它当作

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

}

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

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

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

我假设如果该函数每小时调用一次,那么它一定是计时器线程。在该线程上调用interupt。如果val是一个全局变量,则可以在另一个方法中读取相同的值。谢谢大家的回答。确切地说,该函数有一个计时器。那我怎么才能停止这个计时器呢?谢谢你的回复。那我怎么才能停止另一个函数呢?