前端:发送任务id的List,如[1,2,3] 每个任务有一行展示信息,上面有开启,暂停,关闭等按钮。
后端:根据任务id可以从redis读取任务状态,从而确定按钮是否变灰,这个状态是随时间变化的
比如:任务处于启动中状态时,按钮开启、暂停、关闭应该置灰
需求:如何让前端实时感知每一个任务的按钮状态,并置灰或启用这些按钮
目前想到的时websocket,有兄弟有别的思路,或者时websocket方法的具体设计吗?
websocket就是最高效的了,相对来说比较复杂一些,使用websocket 的话得有socket服务端,前端页面连接socket服务端,有数据变化服务端推送给前端页面,页面根据服务端推送的数据更改按钮状态。也可以使用定时器,每隔一段时间(时效性就差了点)就去请求数据,根据请求来的数据来修改按钮的状态。相对来说用定时器比较简单。
基本上能用websocket的,你想要简单点的实现,都可以用轮询去实现(好多项目最终也还是它)
集成mq方式也可以,不过底层实际上还是websocket或者轮询模式。好处是可以直接使用mq的消息推送方式,不用自己写协议。前端有现成js mq组件,无需自行实现。后端mq就更加方便,定时任务状态变更就发送一条消息。