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



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

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

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

您可以在此线程中找到示例: Spring websocket 发送给特定的人

简而言之,有一些方法可以将websockets发送给特定用户:

@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);
}
}

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

相关内容