1

我正在研究他们Thread.sleep在控制器中的旧系统。这里的场景是,一旦收到请求,它就会轮询另一个服务,直到满足条件。这里的问题是请求处理线程因为轮询而被阻塞

我正在尝试将其替换为DeferredResult避免阻塞并使用基于回调的方法。轮询将在一个单独的线程中进行,一旦完成setResult将被调用并向用户提供响应。

使用 DeferredResult 进行间隔轮询真的有意义吗?负载对性能有影响吗?

这是代码:

    while (status.equals("RUNNING")) {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            log.error("Error while polling for status setting Thread to sleep.", e);
        }
        status = requestStatus();
    }

我试图改进的是基于这个例子

4

0 回答 0