【问题标题】:how to notify different users on their job status change?如何通知不同用户的工作状态变化?
【发布时间】:2018-08-16 20:54:33
【问题描述】:

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

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

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

【问题讨论】:

  • 你好。请澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。

标签: spring stomp


【解决方案1】:

您可以在此线程中找到示例: Spring websocket send to specific people

简而言之,有一些方法可以将 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);
    }
}

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

【讨论】:

  • 感谢您的评论。但是在您的示例中,如何通知管理员用户?他们应该监控整张桌子。
  • 您有两个选择:创建一个可供管理员访问的主题。或者单独向每个管理员发送消息。
猜你喜欢
  • 1970-01-01
  • 2011-03-08
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多