我尝试使用springboot(websocket)创建一个聊天机器人,我想知道是否可以在Scheduler中推送动态消息,我需要一些帮助,我不能把它弄出来。 我想在调度程序中推送消息配置我该怎么做:
No such file or directory
在sendAdhocMessages方法中,我想传递一个将在html页面中显示的消息。在官方文档中,不可能将参数传递给@Scheduled注释的方法,是否有任何方法可以做到这一点?
@EnableScheduling
@Configuration
public class SchedulerConfig {
@Autowired
SimpMessagingTemplate template;
@Scheduled(fixedDelay = 3000)
public void sendAdhocMessages() {
template.convertAndSend("/topic/user", new UserResponse("Fixed Delay Scheduler"));
}
}
答案 0 :(得分:0)
official documentation包含提示,如何将值传递给预定方法。也许你可以提供一个充当消息提供者的bean。在调度程序类中,您可以自动装配消息提供程序并请求消息。 一个简短的代码示例:
@Componet
public class MessageProvider {
private String message;
// getter and setter ...
}
在调度程序中,您可以使用消息提供程序,如下所示:
@EnableScheduling
@Configuration
public class SchedulerConfig {
@Autowired
SimpMessagingTemplate template;
@Autowired
MessageProvider messageProvider;
@Scheduled(fixedDelay = 3000)
public void sendAdhocMessages() {
String currentMessage = messageProvider.getMessage();
template.convertAndSend("/topic/user", new UserResponse(currentMessage));
}
}