我有一个 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 循环。
我也需要这个是每个用户的,所以一个用户不能与另一个用户操作交互。
控制器是单例的,因此它在所有会话中都有共同的属性。这意味着我们不能将状态存储在全局属性中,然后在循环内部检查更改以使其中断,因为这不是每个会话的属性。
除了让控制器拥有会话范围之外,还有什么方法可以做到这一点?(我什至不确定它是否会起作用)。
提前感谢您,我将不胜感激任何提示。