Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何通知不同的用户他们的作业状态更改?_Spring_Stomp - Fatal编程技术网

Spring 如何通知不同的用户他们的作业状态更改?

Spring 如何通知不同的用户他们的作业状态更改?,spring,stomp,Spring,Stomp,我正在构建一个作业调度应用程序-要求让用户和管理员监视web页面上运行的作业。当管理员监视所有作业时,用户应该只查看自己的作业。我的设计是这样的,当一个作业被触发时,它被插入到一个具有以下结构的表中。随着作业的进行,其状态将在同一个表中相应地更新 CREATE TABLE JOB_STATUS { ID INT, USER_ID INT, JOB_NAME VARCHAR, STATUS INT } 我对stomp端点有一些基本知识,所以我考虑采用这种技术。虽然

我正在构建一个作业调度应用程序-要求让用户和管理员监视web页面上运行的作业。当管理员监视所有作业时,用户应该只查看自己的作业。我的设计是这样的,当一个作业被触发时,它被插入到一个具有以下结构的表中。随着作业的进行,其状态将在同一个表中相应地更新

CREATE TABLE JOB_STATUS {
    ID INT,
    USER_ID INT,
    JOB_NAME VARCHAR,
    STATUS INT
}

我对stomp端点有一些基本知识,所以我考虑采用这种技术。虽然管理员用户可以轻松地监视整个表,但我不知道如何为特定用户构建stomp端点来监视其自己的作业状态。非常感谢您的帮助。

您可以在此线程中找到示例:

简而言之,有几种方法可以将WebSocket发送给特定用户:

@Controller
public class GreetingController {

    @Autowired
    private SimpMessagingTemplate messagingTemplate;

    @MessageMapping("/hello")
    public void greeting(Principal principal, HelloMessage message) throws  Exception {
        Greeting greeting = new Greeting();
        greeting.setContent("Hello!");
        messagingTemplate.convertAndSendToUser(message.getToUser(), "/queue/reply", greeting);
    }
}

因此,您可以使用它向收听正在运行的作业的每个用户发送消息。

Hello。请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅页面以获取澄清此问题的帮助。感谢您的评论。但在您的示例中,如何通知管理员用户?他们应该监视整个表。您有两个选择:创建一个管理员可以访问的主题。或者分别向每个管理员发送消息。