我想用quartz做实时监控,实时数据存储在数据库里,采用quartz每隔一个小时读取一下数据库的数据,并将数据实时发送到前端展示,请问如何配置前段自动接收并更新啊,还是说只能用setTimeout这种方式定时去数据库里面取啊?
13 回复
@wendal 了解,我想用websocket这种方式,之前没用过,想试试
@wendal qautz任务处理的结果如何交由websocket发送到浏览器,是不是需要Listener?
@wendal 没用过,但是应该都是调websocket的send(message)方法吧
???我现在的想法是,定时任务处理完后,将结果群发到每一个页面上更新
@IocBean
public class TestJob implements Job {
private static final Log log = Logs.get();
@Inject
protected Dao dao;
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap data = context.getJobDetail().getJobDataMap();
String taskId = context.getJobDetail().getKey().getName();
String hi = data.getString("hi");
log.info("Test Job hi::" + hi);
dao.update(Sys_task.class, Chain.make("exeAt", (int) (System.currentTimeMillis() / 1000)).add("exeResult", "执行成功"), Cnd.where("id", "=", taskId));
//向浏览器发送数据
for (WebSocket conn : WebSocketSet) {
conn.send(message);
}
}
}
@wendal 但是如果是上述做法的话,那么客户端所有页面无论连接websocket的先后顺序,都是同时更新,且quartz和websocket耦合太大了,有没有更好的思路?
@wendal 好吧,先实现业务再说
@wendal 居然不推荐mqttwk……
@Wizzercn mqttwk是基于nutzBoot的吧,我现在用的是nutzwk,下个项目采用微服务架构,所以到时候再学习mqttwk哈,^_^
@Wizzercn 啊啊啊😭
添加回复
请先登陆