java - Spring Controller ,如何根据新的HttpRequest跳出循环?

标签 java spring controller while-loop session-scope

我有一个 Spring @Controller。 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 循环。

此外,我需要针对每个用户进行此操作,因此一个用户无法与其他用户操作进行交互。

Controller 是一个单例,因此它在所有 session 中具有共同的属性。这意味着我们不能将状态存储在全局属性中,然后检查循环内部是否有更改,以便它可以中断,因为这不是每个 session 的属性。

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

预先感谢您,我将不胜感激任何提示。

最佳答案

将 keepRunning 值存储在数据库配置表中,并在 n 秒后检查该值。

不同 Controller 中的单独请求可以独立于该 Controller 更新状态变量。

关于java - Spring Controller ,如何根据新的HttpRequest跳出循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8034014/

相关文章:

java - 通过 JSON 中的 RestTemplate POST 请求

java - 如何用spring-boot初始化ActiveMQ的SystemUsage?

java - Spring Jdbc模板+ MySQL = TransientDataAccessResourceException : Invalid Argument Value : Java. io.notSerializationException

unit-testing - Web2py 中的单元测试

iPhone:如何在一个 NIB 文件中创建两个 Controller ?

java - 我怎样才能写一个 Controller 而不把它变成上帝对象?

java - android reSTLet 添加非标准头参数

java - 带有 DefaultValue 的 JAXRS UriInfo

java - 在Java中从控制台打开包中的类

java - 为什么 collections.sort 在 Java 中按比较器排序时会抛出不支持的操作异常?