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

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

 

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

 

         应用场景一

 

         更新静态数据

 

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

 

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

 

         应用场景二

        

         自动结账

 

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

        

         应用场景三

 

         自动核算评价分数

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

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

 

         结束语

        

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

时间: 2024-09-23 18:55:40

quartz---我为什么要使用quartz的相关文章

Quartz教程一:使用quartz

原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣研究源码的同学,可以参考我对quartz-core源码的注释(进行中). Scheduler在使用之前需要实例化.一般通过SchedulerFactory来创建一个实例.有些用户将factory的实例保存在JNDI中,但直接初始化,然后使用该实例也许更简单(见下面的示例). sch

quartz 定时任务-问个问题 quartz 在Linux下 定时任务不执行是个什么情况!

问题描述 问个问题 quartz 在Linux下 定时任务不执行是个什么情况! 数据库 在Linux下 ! 应用在Windows下 如果数据库在Windows下 定时任务正常,反之不行!

Quartz使用示例总结

欢迎入QQ群技术交流:466355109,技术不全没关系,只要有交流的心就尽管来吧 任务调度在目前的JAVA应用程序中运用的十分普遍,故掌握QUARTZ是必备的技能 闲话少说,上官网:http://www.quartz-scheduler.org/ 下载最新1.80资源包 commons-logging log4j sff4j 等jar包要添加进去,quartz的jar包则肯定必须  首先写一个类实现Job接口 Java代码   public class QuartzDemo implement

Quartz,企业级的计划/日程安排(job schedule)系统(1)-介绍

什么是job schedule system?    job schedule system是负责在预定义的时间执行或者通知某个应用组件的系统.举个例子来说,比如在每周一早上9:30发送email通知客户最新的业务情况. java.util.Timer和java.util.TimerTask    Timer和TimerTask是可以完成job schedule的两个jdk提供的类,不过这不能称为一个system.Timer和TimerTask是很简单的,不直接支持持久化任务,线程池和类似日历(

java中quartz调度在一些定时任务(job)的入门级应用

Quartz 执行详解:http://quartz-scheduler.org/   去下载相应的jar包 在maven中可直接把依赖拷贝过来复制到pom中去. 具体规则可查询quartz的文档 下面是一个非常详细的实例: 1.首先把需要执行的任务写到execute中去 并实现job package job; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import or

spring框架使用任务调度quartz的例子-Job and Trigger篇

MainJob.java 1package jobs;23import org.apache.log4j.Logger;4import org.quartz.JobExecutionContext;5import org.quartz.JobExecutionException;6import org.springframework.scheduling.quartz.QuartzJobBean;78public class MainJob extends QuartzJobBean {9 pr

在J2EE环境中使用Quartz企业级计划调度器(2)

3 自动启动Servlets 我们希望在应用被部署或容器启动时就提交任务.我们必须在web模块并重启动的时候 初始化QuartzInitializerServlet 和 howto.quartz.servlet.QuartzServlet.为了达到 这个目的,我们需要在Web应用的部署描述符(web.xml)中增加以下内容: <servlet> <servlet-name>QuartzInitializer</servlet-name> <display-name

定时任务框架Quartz的新玩法

Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现.作为企业级别的定时任务调度,Quartz不仅仅拥有强大的调度功能,也支持各种灵活的应用方式,并同时支持分布式和集群能力. 基本使用 Quartz的使用非常简单,首先在POM里面加入引用 <!-- Quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId&

vs2010查看quartz.net 2.1.2的源码时其中一报错的解决方法

问题: 使用vs2010查看quartz.net 2.1.2的源码时,报错: ..\Quartz.NET-2.1.2\server\Quartz.Server\Quartz.Server.2010.csproj : error  : 无法读取项目文件"Quartz.Server.2010.csproj". ..\Quartz.NET-2.1.2\server\Quartz.Server\Quartz.Server.2010.csproj(178,3): 未找到导入的项目"..

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

正文  spring4.0 整合 Quartz 实现任务调度.这真是期末项目的最后一篇,剩下到暑假吧.    Quartz 介绍   Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java application - from the smallest stand-alone applicatio