博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
quartz---我为什么要使用quartz
阅读量:6276 次
发布时间:2019-06-22

本文共 977 字,大约阅读时间需要 3 分钟。

quartz---我为什么要使用quartz

 

         quartz是什么?怎么使用?本文不做介绍,有兴趣的朋友可以看笔者之前的博客以及自己查阅相关资料。本文笔者主要想介绍一下我为什么使用Quartz以及在“jrkj”这个项目中运用的场景。

 

         应用场景一

 

         更新静态数据

 

         接着上一篇Redis的应用可知,我需要将首页所展示的数据存入redis中并且每隔一小时更新一次数据。

 

         不知道您如果遇到这种问题如何解决,笔者在遇到这个问题时,首先想到的是多线程。当项目启动时我多起一个线程专门负责数据的查询并更新存入redis中,然后在写一个定时地每小时执行一次改更新方法。而当时一个偶然的机会听一个朋友说他们公司用了一个叫做quartz框架,简单的了解了一下我果断选择了后者。(当时主要出于两个原因:一、项目开发的时间比较紧,二、使用quartz拓展性比较好,维护起来比较方便,三、其他场景说明)。

 

         应用场景二

        

         自动结账

 

         因为涉及到支付,如果学员在上完课之后,没有结课的话,这部分钱就永远是讲师的带收入而不是收入。显然这是不合理的,所以就需要一个自动结账的过程。类似于咱们在淘宝上购物如果我们不确认收货,也会默认一个时间段,如果超过这个时间段也会自动结账。

        

         应用场景三

 

         自动核算评价分数

         学员在完成一次交易之后会对具体的某一门课程进行评价,而讲师的综合评价会核算其所授的所有的课程的所有评价并且按照一定得规则进行计算从而算出该讲师的综合评分     如果我们在每次查询讲师详情的时候再去计算这些分数的话,在数据少的时候也许没什么问题,当我们的数据量特别大的时候效率肯定是个大问题,如果我们每天凌晨3-4点的时候去核算呢?

         所以这块我在数据库中增加了一个表用户存放讲师的综合评价,并在每天凌晨四点更新,如果我需要查询讲师的详细信息,我可以直接查询新建的表。

 

         结束语

        

         相信读者看了这篇博客和笔者的上一篇博客会发现频繁的出现一个词场景,我想,代码的任意一行都是有其存在的意义的。我们在敲代码的时候不妨问问自己,我写这段代码的应用场景是什么?我为什么要这样做,而不用另外一种方法?这样做解决了什么问题?如果每一个功能,每一个方法我们都能这样问问自己,我想这一方面能够提交我们得开发效率,另一方面也能培养了我们的业务思维(相信很多人都听过,业务思维的重要性),技术只有依托于业务才能发挥它的功效。

你可能感兴趣的文章
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
多线程基础知识
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>