NutzCN Logo
问答 quartz定时任务处理结果输出到前端问题
发布于 2264天前 作者 bb3239 2676 次浏览 复制 上一个帖子 下一个帖子
标签:

我想用quartz做实时监控,实时数据存储在数据库里,采用quartz每隔一个小时读取一下数据库的数据,并将数据实时发送到前端展示,请问如何配置前段自动接收并更新啊,还是说只能用setTimeout这种方式定时去数据库里面取啊?

13 回复

定时取或者websocket

既然这么长的间隔,定时取得了

@wendal 了解,我想用websocket这种方式,之前没用过,想试试

@wendal qautz任务处理的结果如何交由websocket发送到浏览器,是不是需要Listener?

你没用过websocket?

@wendal 没用过,但是应该都是调websocket的send(message)方法吧

根据websocket的id发过去

???我现在的想法是,定时任务处理完后,将结果群发到每一个页面上更新

@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耦合太大了,有没有更好的思路?

emqtt 或者activimq之类的

@wendal 好吧,先实现业务再说

@Wizzercn mqttwk是基于nutzBoot的吧,我现在用的是nutzwk,下个项目采用微服务架构,所以到时候再学习mqttwk哈,^_^

添加回复
请先登陆
回到顶部