ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

苍穹外卖day10、11--自动关单、实时推送与数据统计的实现思路

苍穹外卖day10、11--自动关单、实时推送与数据统计的实现思路 苍穹外卖day10、11–自动关单、实时推送与数据统计的实现思路文章目录苍穹外卖day10、11--自动关单、实时推送与数据统计的实现思路前言Spring Task--定时任务框架介绍以及应用的业务背景使用步骤WebSocket--一种新网络协议介绍使用步骤Apache ECharts--前端图表库总结前言第十天和第十一天介绍了三个框架这些都是业务里面稍微边缘一点的功能主要起辅助作用所以合并在一天写了。Spring Task–定时任务框架介绍以及应用的业务背景Spring Task是Spring框架提供的任务调度工具可以按照约定的时间自动执行某个代码逻辑。在外卖项目中如果用户下单了但一直未支付。超过15分钟则需要将状态改成已取消。还有用户收货之后管理端一直没点完成。需要将状态改成已完成。每天打烊时检查当用户量比较大的时候这两种情况如果人为处理是一件很麻烦的事情因此需要定时的去检查以及处理。那么就需要用到Spring Task。使用步骤与其他的框架一样第一步先导入maven坐标。但是该任务框架很小已经被集成在了之前已经导入过的包–starter里面。所以直接进行第二步在启动类上加上EnableScheduling.最后编写定时任务类即可Scheduled(cron 0 * * * * ?)为cron表达式定义任务触发的时间。WebSocket–一种新网络协议介绍黑马的这张图真的完美的介绍了WebSocket。一般来说需要实时更新的就需要用到WebSocket通过后端给前端传递数据然后前端进行更新。使用步骤导入maven坐标。导入WebSocket服务端组件WebSocketServer用于和客户端通信。导入配置类WebSocketConfiguration注册WebSocket的服务端组件。导入定时任务类WebSocketTask定时向客户端推送数据。在这里面真正工作的是WebSocketServer。他在客户端连接、关闭以及向服务端发送信息的时候可以分别执行对应的代码逻辑。Configuration public class WebSocketConfiguration { Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } }WebSocketConfiguration的代码逻辑很简单就是把 ServerEndpoint 注册到 Spring 容器而真正实现服务端向客户端发送信息的是下面这个方法在实际项目中用户下单之后我们服务端需要向客户端传递信息规定以JSON方式传递。所以在用户下单成功后我们调用该方法。发送完这个信息之后客户端代码会进行解析并进行对应的业务逻辑。Apache ECharts–前端图表库Apache ECharts 是一款常用的前端图表组件能够结合后端接口返回的数据快速生成统计报表和数据可视化页面。这些图表就是由他完成的但是在外卖中我们仅对其做一个了解主要学习后端接口的开发。主要有四个接口业务额的统计、用户统计、订单统计、销量排名统计。四个接口的共性前端传递过来开始时间与结束时间。后端返回这个时间段之间的每一天以及对应的数据。重点在于各个数据统计对数据库的查询。总结本次学习的内容虽然没有订单模块那么复杂但都是实际项目中经常会用到的辅助功能。相比于框架本身的使用我觉得更重要的是理解它们在业务中的作用为什么需要定时任务、为什么需要实时推送、为什么需要数据统计。只有先理解业务需求再去学习技术实现才能真正明白这些框架存在的意义。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进