Spring Controller,如何基于一个新的HttpRequest跳出循环



我有一个Spring @Controller。在控制器内部有一个方法,该方法在特定请求进入while循环后检查新数据并仅在找到数据时中断:

while(System.currentTimeMillis() < end && controllersDataStore.getAutoupdate() == eventAutoUpdate ) {
        gridData = (GenericGrid) dsEventLogService.retrieveNewEventGridRows(gridHelper);
        if(gridData.getAaData().size()==0){
            try {
                Thread.sleep(POLLING_INTERVAL);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        else{
            break;
        }
    }

在特定的用户操作之后,即使没有找到数据,我也需要在某些情况下跳出循环。所以我需要从一个新的HttpRequest,能够从以前的while循环打破。

我还需要这是每个用户,所以一个用户不能与另一个用户的操作交互。

控制器是一个单例,所以它在所有会话中都有共同的属性。这意味着我们不能在一个全局属性中存储一个状态,然后在循环中检查是否有变化,这样它就会中断,因为这不是一个每个会话的属性。

除了让控制器具有会话范围之外,还有什么方法可以做到这一点吗?(我甚至不确定它是否会起作用)。

提前谢谢你,任何提示我都会很感激。

在db配置表中存储一个keepRunning值,并在n秒后检查。

另一个控制器中的单独请求可以独立于此控制器更新状态变量

相关内容

  • 没有找到相关文章

最新更新