自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shirley_John_Thomas的博客

我为何而来?我为何而战?什么会因我而不同?

  • 博客(251)
  • 收藏
  • 关注

转载 quartz实现每周一至周五 非法定节假日 每天9:30-11:30,13:00-15:00执行定时任务

我的定时任务需求是:使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务。经过学习quartz,发现使用SimperTrigger和CronTrgger这两种触发器都无法满足这种需求的表达,我始终无法相信强大的quartz绝对不可能无法实现这种需求。经过别人的指点,终于在一篇法文的blog中找到了类似的解决办法,需要借助于quartz

2017-03-03 20:13:05 3177

原创 Job 存储和持久化 (第五部分)

十. 使用数据库存储 Scheduler 信息·加载 Job 到数据库中在前面有一节,"使用内存存储 Scheduler 信息",我们谈到关于在使用 RAMJobStore 时如何加载 Job 和 Trigger 信息到内存中。那么  Job 和 Trigger 又是如何加载到数据库中的呢?存在以下几个方法把 Job 信息存入到数据库:    · 在你的程序中加入 Job 信息    · 使用 J

2017-02-16 16:41:17 814

原创 Job 存储和持久化 (第四部分)

八. 为 JobStroreTX 创建数据源当使用持久性 JobStore 时,Quartz 需要一个数据源。数据源扮演着产生数据库连接工厂的角色。在 Java  中,所有的数据源要实现 java.sql.Datasource 接口。Quartz 自身并不提供 Datasource 的所有功能;它只代表了那一职责。默认的,Quartz 能使用另一开源的框架,叫做 Commons DBCP,或者可以

2017-02-16 16:40:52 639

原创 Job 存储和持久化 (第三部分)

七. 使用 JobStoreTX我们首先要讨论的持久性 JobStore 是 JobStoreTX。名字中的 "TX" 代表着 "事物"。我们在前面提过,JobStoreTX 是设计用于想要 Quartz 来管理事物的环境中。例如,假如你正构建一个 J2EE 应用,并且不使用到应用服务器,如 WebLogic 或者 JBoss 等,那么 JobStoreTX 会是持久性 JobStore 正确的选

2017-02-16 16:40:23 500

原创 Job 存储和持久化 (第二部分)

使用持久性的 JobStore在很多方面,JobStore 有用内存来存储的,还有些使用某种能长期持久的方式来共享相拟的特征。这不该有什么惊奇的,因为他们都服务于同一目的。和 RAMJobStore 一样,特久性的 JobStore 有优点也有其缺点。在你选择持久性的 JobStore 之前应该认真理解其利与弊。这节就来解释它们的区别,以及在什么情况下你会希望使用持久性的 JobStore。目前,

2017-02-16 16:39:27 568

原创 Job 存储和持久化 (第一部分)

Quartz 用 JobStores 对 Job、Trigger、calendar 和 Schduler 数据提供一种存储机制。Scheduler 应用已配置的 JobStore 来存储和获取到部署信息,并决定正被触发执行的 Job 的职责。所有的关于哪个 Job 要执行和以什么时间表来执行他们的信息都来自于 JobStore。本章就来看 Quartz 中可用的各种类型的 JobStore,和如何

2017-02-16 16:38:54 442

原创 Cron 触发器及相关内容 (第四部分)

七. Cron 表达式 Cookbook此处的 Cron 表达式 cookbook 旨在为常用的执行需求提供方案。尽管不可能列举出所有的表达式,但下面的应该为满足你的业务需求提供了足够的例子。·分钟的 Cron 表达式表 5.1. 包括了分钟频度的任务计划 Cron 表达式用法表达式每天的从 5:00 PM 至 5:59 PM 中的每分钟触发0 * 17 * * ?每天的从 11:00 PM 至

2017-02-16 16:37:55 439

原创 Cron 触发器及相关内容 (第三部分)

四. 为 CronTrigger 使用起迄日期Cron 表达式是用来决定一个 Trigger 被触发执行一个 Job 的日期和次数。当你创建一个 CronTrigger 实例,假如没为它指定一个开始时间,这个 Trigger 当然就会假定是在依赖于 Cron 表达式尽早的被触发。例如,如果你用这个表达式0 * 14-20 * * ?这个 Trigger 会在每天的从下午 2 点到下午的 7:59

2017-02-16 16:37:21 699

原创 Cron 触发器及相关内容 (第二部分)

三. cron 表达式的格式Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六

2017-02-16 16:36:52 309

原创 Cron 触发器及相关内容 (第一部分)

我们在上章中有承诺过会花更多时间来讲 Quartz 的 CronTrigger,所以不会让你失望的。SimpleTrigger 对于需要在指定的毫秒处及时执行的作业还是不错的,但是假如你的作业需要更复杂的执行计划时,你也就要 CronTrigger 给你提供更强更灵活的功能。一. Cron 的快速一课cron 这一观念是来自于 UNIX 世界。在 UNIX 中,cron 是一个运行于后台的守护程序

2017-02-16 16:36:23 485

原创 部署 Job (第四部分)

七. 线程在 Quartz 中的用法线程与 Quartz 来说尤为重要,因为 Quartz  就是设计为支持同时运行多个 Job。为达到此效果,Quartz 非常倚重于内建于 Java 语言的线程,借助于自己的类和借口还有所增强。你已经在本章或前面章节中看到过这方面的例子。当 Quartz Schduler 首次由某个工厂方法创建时,工厂配置了 Scheduler 会在它的整个生命周期中用到的几个

2017-02-16 16:34:28 382

原创 部署 Job (第三部分)

5. 易失性、持久性和可恢复性这三个属性有些类似的,由于它们影响的都是 Job 的运行时行为。我们下面依次讨论它们。·Job 的易失性一个易失性的 Job 是在程序关闭之后不会被持久化。一个 Job 是通过调用 JobDetail 的 setVolatility(true) 被设置为易失性的。当你需要持久化 Job 时不应使用 RamJobStoreRamJobStore 使用的是非永久性存储器,

2017-02-16 16:33:33 354

原创 部署 Job (第二部分)

管理 Scheduler除了启动 Scheduler, 在应用的生命周期中你也许还要执行 Scheduler 的别的一些操作。这些 Scheduler 操作包括查询、设置 Scheduler 为 standby 模式、继续、停止。很多情况下,当一个 Scheduler 启动后,除让它运行之外你不需要对它做任何事情的。在某些情形下,你也可能会要临时的终止 Scheduler 而转入到 standby

2017-02-16 16:32:46 450

原创 部署 Job (第一部分)

在上一章中,你首次尝试使用了 Quartz 来部署 Job。无可否认地,那些 Job 都不是很复杂,但这个不是重点。你应该轻松的对如何构造并部署 Job 有了相当的了解,更重要的是,由此热情的希望学得更多的东西。在本章中将会继续给你讲述。第四章将带领你深入到 Quart 框架的核心部分。可证明的是,这一章对于阅读和理解本书是非常之重要的。调度器(Scheduler) 是此框架的心脏。本章关注于如何

2017-02-16 16:32:05 401

原创 Hello Quartz (第四部分)

打包 Quartz 应用程序让我们最后简单讨论打包一个用到了 Quarts 框架的应用程序的流程,也以此来结束本章的内容。·Quartz 第三方依赖包从 1.5 版的发行包开始,你会看到一个 \lib 目录,在这个目录,你会发现几个子目录:    ·\lib\core    ·\lib\optional    ·\lib\build作为开发呢,你绝对是需求 Quartz JAR 包,也需要其他一些

2017-02-16 16:29:58 265

原创 Hello Quartz (第三部分)

声明式部署一个 Job前面我们讨论过,尽可能的用声明式处理软件配置,其次才才虑编程式。再来看代码  3.6,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译。这种方式只适用于小的例子程序,但是对于一个大且复杂的系统,这就成了一个问题了。因此,假如能以声明式部署 Quart Job 时,并且也是需求允许的情况下,你应该每次都选择这种方式。·配置 quartz.prope

2017-02-16 16:29:25 296

原创 Hello Quartz (第二部分)

调度 Quartz ScanDirectoryJob到目前为止,我们已经创建了一个 Quartz job,但还没有决定怎么处置它--明显地,我们需以某种方式为这个 Job 设置一个运行时间表。时间表可以是一次性的事件,或者我们可能会安装它在除周日之外的每个午夜执行。你即刻将会看到,Quartz Schduler 是框架的心脏与灵魂。所有的 Job 都通过 Schduler 注册;必要时,Sched

2017-02-16 16:28:44 353

原创 Hello Quartz (第一部分)

多数读者都较容易从一个简明扼要的例子中明白一个东西。作为写作者,要注意避免把一章的内容精简地几乎什么都没了;作为读者呢,需要有耐心并且要进一步相信其后相关的章节应该去阅读,尽管这个例子看起来是如此之简单。有了这种初衷,这一章将为你介绍如何用 Quartz 框架创建一个简单的应用程序,它展示了一个典型的应用。这个例子将让你领略到创建和执行一个简单应用的必要步骤。通过本章的学习,为你学习本书的后续章节

2017-02-16 16:28:00 341

原创 Quartz 起步

本章对 Quartz 框架一个快速的入门介绍,同时也大略指导你从哪里下载,构建和安装这个框架1. Quartz 框架的发展历程和现今许多在用的开源项目一样,Quartz之初也只是为个人开发者提供了一个简单的实现方案。但是随着日益增多的关键人员的积极参与和慷慨的贡献,Quartz 已经成为了一个为众人所知,并且能帮助人们解决更大问题的框架。Quartz 项目 是由 James House 创立的,它

2017-02-16 16:26:07 445

原创 企业应用中的作业调度

第一章.  企业应用中的作业调度    ·什么是作业调度    ·作业调度为什么说是重要的    ·企业应用中的作业调度    ·非企业应用中的作业调度    ·作业调度与工作流    ·关于作业调度其他可选择方案1. 什么是作业调度“作业”,这一技术述语上的概念,又让我们回到了大型机的年代,那时候,用户/程序员提交一叠穿孔卡片或者纸带(上面描述了一个作业)给操作人员,由操作人员帮忙执行那些作业。

2017-02-16 16:22:02 782

原创 Ehcache小结(二)

1. 概述1.1 背景    系统缓存是位于应用程序与物理数据源之间的,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。缓存设想内存是有限的,缓存的时效性也是有限的,所以可以设定内存数量的大小,可以知晓生效算法,可以在内存满了的时候,安装最少访问等算法将缓存直接移除或切除到硬盘上。   Ehcache从Hibernate发展而来,逐渐涵盖了

2017-01-13 10:00:22 324

原创 Ehcache小结(一)

1 基本概念EHCache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,目前的最新版本是2.8。1.1 主要特性(1) 快速、简单(2) 提供LRU、LFU和FIFO 缓存策略(3) 缓存数据有两级:内存和磁盘,因此无需担心容量问题(4) 缓存数据会在虚拟机重启的过程

2017-01-13 09:39:16 2424

原创 Ehcache简介

1     基本概念EHCache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,目前的最新版本是2.8。1.1     主要特性(1)   快速、简单(2)   提供LRU、LFU和FIFO 缓存策略(3)   缓存数据有两级:内存和磁盘,因此无需

2017-01-12 10:02:48 692

原创 在Linux上安装Zookeeper

Zookeeper作为Dubbo服务的注册中心,Dubbo原先基于数据库的注册中心,没采用Zookeeper,Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心,Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据

2017-01-12 09:54:35 444

原创 Dubbo背景简介

一 介绍Dubbo背景大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。(1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列

2017-01-12 09:46:59 462

原创 redis搭建

下载redis安装包(linux)下载地址(最新版本):http://download.redis.io/releases/redis-3.2.0.tar.gz如需选择其他版本:http://www.redis.cn/download.html安装包通过sftp上传到服务器,路径根据要求自行设置(服务器方便访问外网情况下,可略过前两步,进入服务器通过如下命令直接下载安装包:wg

2017-01-09 16:19:37 331

原创 FusionCharts破解版导出图片步骤

1,加入jar包(fcexporter.jar   ;fcexporthandler.jar ),FCExporter.swf,FusionChartsExportComponent.js2,拷贝文件FCExporter.php到WebContent/jsp/ExportHandlers/PHP/FCExporter.php3,web.xml加入servlet[

2016-12-26 11:17:19 537

原创 FusionChartsFree免费的报表

FusionCharts Free简介官网地址:http://www.fusioncharts.com/demo掩饰地址:http://www.fusioncharts.com/demos/特点;FusionCharts的自由是开源免费的Flash图表组件,可以用来呈现数据驱动的动画图表。在Macromedia Flash MX,FusionCharts的可用于

2016-12-26 11:15:49 484

原创 js实现关于分页的一种实现方式

项目中用到列表的地方很多,二页面列表的显示必然要求分页,所以分页和查询几乎密不可分,如果说你不会分页查询数据,那你基本上还属于菜鸟。分页的原理很简单,从sql上看就是从哪一条开始,往后差几条。所以sql只需要传2个参数,这只是原理罢了,关键是实现。而实现的方法就多了去了,架构师干这个是小菜一碟。在我的项目中,关于分页架构师已经写好了一个管理分页的类,这个类与sq

2016-12-26 11:14:33 2860

原创 iText官方教程

如果要导出PDF文件,首选当然是iText,从网上也找了些资料,有很多,也有些乱。自己做了个例子,感觉还是很浅,深入的内容还是研究不透。下载了官方的jar包,本来想看看里面的Demo,结果只有api文档。资料还真是不好找。今天发现官方还是有很多例子代码的。下载地址:http://itextpdf.com/examples/iText官网: http://it

2016-12-26 11:12:56 17355 1

原创 iText导出pdf,poi导出excel并下载到客户端

项目中需要做导出功能,要支持excel,pdf导出。excel导出我选择使用poi;pdf导出我选择使用iText,在此单独做记录。先说说在设计与开发中的问题,从整体上把握设计思路。思路(一)在页面json拼装数据,在后台导出pdf文件到客户端。本例子只是简单的导出列表数据,没有涉及到图片等其他复杂格式文件。所以还是比较简单的。这个设计思路是最理想的

2016-12-26 11:11:38 2358 1

原创 XML操作

在项目中队xml的解析和生成几乎每个程序员都要遇到现在学习如何对xml解析和怎样生成xml。首先,写一个xml,作为我们研究的样本。XmlMessage.xml UTF-8 MALL Welcome all you guys

2016-12-26 11:05:27 297

原创 正则表达式 基础认识

正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的替换更强大。   正则表达式学习起来其实是很简单的,不多的几个较为抽象的概念也很容易理解。之所以很多人感觉正则表达式比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先

2016-12-26 10:59:49 286

原创 正则表达式语法

正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:Visual Basic Scripting Edition VBScript 匹配/^\[ \t]*$/ "

2016-12-26 10:56:48 934

转载 通过豆瓣Api,输入ISBN获取图书信息

在本篇文章中,主要是通过豆瓣API实现获取图书信息的小功能。 一. 豆瓣API能干什么? 参考链接:[url]http://www.douban.com/service/ [/url] 豆瓣API是豆瓣为第三方开发人员提供的编程接口。利用豆瓣API,你可以在你的网站或程序中使用豆瓣的数据和功能.目前的豆瓣API支持的功能包括: 搜索并查看书籍、电影、音乐信息搜索并查

2016-10-14 17:54:03 14224 1

原创 java 数据库连接池配置方式

一,Tomcat配置数据源:方式一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,内容如下:       Container" type="javax.sql.DataSource"      maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"      use

2016-10-14 13:55:33 545

原创 Java当中定时器使用

定时器类Timer在java.util包中。 * 使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后运行。定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现详细任务。 * schedule(TimerTask task, Date time)设定指定任务task

2016-10-09 16:44:37 649

原创 Java中的值传递和引用传递

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?     答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管

2016-10-09 16:01:16 296

原创 Java堆和栈的区别

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在

2016-10-09 15:54:29 284

原创 hadoop框架分析

mapreduce是一种模式,一种什么模式呢?一种云计算的核心计算模式,一种分布式运算技术,也是简化的分布式编程模式,它主要用于解决问题的程序开发模型,也是开发人员拆解问题的方法。如下图所示,mapreduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式,流程图如下图1所示:在数据被分割后通过Map 函数的程序将

2016-10-09 10:12:41 630

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除