Java 服务能否在Spring boot中为长进程更新控制器

Java 服务能否在Spring boot中为长进程更新控制器,java,spring,Java,Spring,这是一个关于SpringBoot中服务和控制器注释类之间通信的问题。我有一个RestController类,它公开了调用服务类中的方法的POST映射。现在这种方法可能需要很长时间运行;因此,需要向控制器发送某种反馈 是否有任何机制允许服务调用/更新控制器中的方法/变量 最简单的方法之一是将一些lamda函数从控制器传递到服务,然后像这样从服务调用它 控制器类 @RestController public class controller { @Autowired Service

这是一个关于SpringBoot中服务和控制器注释类之间通信的问题。我有一个RestController类,它公开了调用服务类中的方法的POST映射。现在这种方法可能需要很长时间运行;因此,需要向控制器发送某种反馈


是否有任何机制允许服务调用/更新控制器中的方法/变量

最简单的方法之一是将一些lamda函数从控制器传递到服务,然后像这样从服务调用它

控制器类

@RestController
public class controller {
    @Autowired
    Service service;

    public void foo() {
            service.foo(..parms, (message/*any params you want*/) -> {
                // here the body that will receive the message from the service
                System.out.print(message);
            });
    }
}
服务等级

public class Service {
    // updateStatus here is the function you will send the update to the controller from
    public void foo(...params, updateStatus) {
        updateStatus("starting the process...");
        // do some code
        updateStatus("in progress...");
        // do some code
        updateStatus("completed");
    }
}

最简单的方法之一是将一些lamda函数从控制器传递到服务,然后像这样从服务调用它

控制器类

@RestController
public class controller {
    @Autowired
    Service service;

    public void foo() {
            service.foo(..parms, (message/*any params you want*/) -> {
                // here the body that will receive the message from the service
                System.out.print(message);
            });
    }
}
服务等级

public class Service {
    // updateStatus here is the function you will send the update to the controller from
    public void foo(...params, updateStatus) {
        updateStatus("starting the process...");
        // do some code
        updateStatus("in progress...");
        // do some code
        updateStatus("completed");
    }
}

您可以从服务返回控制器,说它启动了任何进程,并在不同的线程中运行该进程。当服务类在控制器中启动时,我们可以从服务类获取线程状态吗?当您说将反馈发送回控制器时,你指的是控制器还是已发布的客户端?对控制器的反馈如前所述,如果不将反馈转发给请求者,为什么需要向控制器提供反馈?你可以从服务返回控制器,表示已启动任何进程,并在不同的线程中运行该进程。我们可以获取线程状态吗当服务类在控制器中启动时,从服务类开始?当您说将反馈发送回控制器时,您是指控制器还是已发布的客户端?如前所述,反馈给控制器如果不将其转发给请求者,为什么需要向控制器提供反馈?