`
yingfang05
  • 浏览: 122973 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

EJB3.1计划中的Cron

    博客分类:
  • ejb3
阅读更多
一个非常小的cron
Cron是一个Unix程序,允许你定时执行脚本(类似于DOS中的批处理文件),命令,
和其它程序在指定的日期和时间.不同于EJB定时器服务,cron考虑到弹性,以日
历为基础的计划安排.Cron工作可以预定间隔的执行,包括一个小时中指定的分
钟,天中的那几个小时,一周中的几天,一个月中的几天,和一年中的几个月.
举例来说,你可以安非一个Cron工作运行在每个星期五的下午12:15.或者每不时,
或者每个月的第一天.这样精细的划分听起来很复杂,不过叙述起来很容易.Cron
使用整型值的五个字段简单的文本格式.通过空格或制表符进行分隔,描述间隔
需要脚本的运行.
栏位的顺序很重要,因为,每一个指定不同的日历指示:分钟,小时,月,和一周中的
天.下面的例子表示如何安排cron工作:
20 * * * *---> 20 minutes after every hour. (00:20, 01:20, etc.)
5 22 * * *---> Every day at 10:05 p.m.
0 8 1 * *---> The first day of every month at 8:00 a.m.
0 8 4 7 *---> The fourth of July at 8:00 a.m.
15 12 * * 5---> Every Friday at 12:15 p.m.
下为译文:
20 * * * *---> 每小时的20分钟之后(00:20, 01:20, 等等.)
5 22 * * *---> 每天下午的10:05分
0 8 1 * *---> 每月第一天的上午8:00
0 8 4 7 *---> 七月第四天的上午8:00
15 12 * * 5---> 每周五的下午12:15
一个星号指出所有的数值是有效的. 举例来说,如果你使用一个星号作为分钟的
栏位, 你正在安排计划cron在每小时的那几分钟运行工作.你可以定义更复杂
的间隔通过指定多值,分开通过逗号,为一个栏位.除此之外, 你能叙述使用连字
号的时间的范围:
0 8 * * 1,3,5 --->Every Monday, Wednesday, and Friday at 8:00 a.m.
0 8 1,15 * * --->The first and 15th of every month at 8:00 a.m.
0 8-17 * * 1-5--->Every hour from 8:00 a.m. through 5:00 p.m., Mon-
Fri.
译文:
0 8 * * 1,3,5 --->每个周一,周三,和周五的上午8:00
0 8 1,15 * * --->每个月的第一和第十五天的上午8:00
0 8-17 * * 1-5--->周一到周五的每天上午8:00到下午的5:00
Cron 工作被预定使用crontab 文件,这是一个简单的文本文件,你可以配置日
期/时间字段和命令,一个常运行的脚本命令.
改良定时器
cron 日期/时间格式现在提供的更有弹性比EJB定时器. 定时器服务需要你指定
间隔精确到毫秒, 这有一点笨拙(你可以转换天,小时,和分钟到毫秒), 但是
更重要,它对许多真实的计划安排需要是不够弹性的. 举例来说,没有方法确定
一个定时器期满在每个月的第一或第十五天,或者在上午的8:00到下午的5:00中
的每个小时,周一到周五.你可以放置更复杂的间隔,但是要付出的代价是增加逻
辑到你的组件代码中来计算他们,并且在更复杂的情节中,你将会为相同的任务
设置多个定时器.
Cron 也不是完美的.计划安排工作像在一台录象机上设定一个定时器: 依照时
钟和日历,每件事物被预设.你能指定cron 在那年的特定天的特定时间运行一
个工作,但是你在来自一个任意的出发点的比较的间隔不能让它运行一个工作.
举例来说, cron 的日期/时间格式不让你排程一个工作每10 分钟运行,从现在
开始.你必须安排它在每小时的特定分钟运行(举例来
说,0,10,20,30,40,50).Cron 也被限制到回到工作的计划安排; 你不能建立一
个单一行动定时器,而且你不能设定一个开始日期.cron 和EJB 定时器服务的
问题是你不能规划, 一个停止约会一个定时器将会自动地取消它本身的日期.
你也可能已经注意cron 间隔心度是对分钟不愿对毫秒.起先一瞥, 这看起来像
弱点一样, 但是在习惯,它非容易接受.因为日历驱动的计划安排, 较多的精确
只是不是很有用.
如果它可以处理像cron 一样的日期/时间格式,藉由开始日期和结束日期,定时
器服务介接口将被改进.而非丢弃目前的createTimer()调用(它是有用的, 尤
其对于单一行动定时器和任意的毫秒间隔) ,它可能会较好的用像cron 一样的
语意增加一个新的方法.而非使用0-6 指定星期的天,使用数值
Sun,Mon,Tue,Wed,Thu,Fri,和Sat(如同在Linux版本下面的cron).例如,代码确
定一个定时器,它运行在2006年,从10月1日起每周的下午11:00.2007年也是如此:
TimerService timerService = ejbContext.getTimerService( );
Calendar start = Calendar.getInstance( ).set(2006, Calendar.OCTOBER,
1);
Calendar end = Calendar.getInstance( ).set(2007, Calendar.MAY, 31);
String dateTimeString = "23 * * * Mon-Fri";
timerService.createTimer(dateTimeString, start, end, null);
因为他们非常有用,所以对定时器服务的这个被提议的变化保存以毫秒为单位的
createTimer() 方法.像cron配置一样重要,不过它不是一个银的子弹.如果你想
要确定一个定时器每30秒启动(或者在任何的任意点及时)一次,你需要使用现有
createTimer() 方法之一.真正精确到毫秒很困难; 首先,正常处理和线程很容
易延迟响应时间,一个服务器时钟一定适当地与正确的时间(也就是, UTC) 一
起同步化
  • 到毫秒,可大部分不是.
  • 协调通用时间(UTC) 是国际的标准叁照时间. 服务器能与使用网络时间协
  • 定(NTP) 和公共时间服务器的UTC 一起协调. 被协调的全世界的时间在标准
    化国家之中被缩写如一个妥协的UTC . 一种完全的解释在
    http://www.boulder.nist.gov/timefreq/general/misc.htm#Anchor-14550上
    是由标准和技术的常见疑问的国立学会提供
    分享到:
    评论
    1 楼 nextway.cn 2009-02-15  
    Quartz已经有这样的功能了

    相关推荐

      EJB3.1深入浅出

      因此,在EJB 3.1中,Sun继续推进改革的步伐,针对EJB 2.1中的一些遗留问题进行了改进,并引入了一系列新的特性和技术。 #### 二、EJB 3.1 的主要特点 ##### 1. **No-Interface View (非接口视图)** EJB 3.1 引入...

      EJB3.1cookbook的源代码

      这个压缩包中的源代码是《EJB 3.1 Cookbook》一书的配套实例,可以帮助读者深入理解和应用书中介绍的各种EJB技术。 1. **EJB的角色与类型**: - **实体Bean(Entity Bean)**:代表持久化的业务对象,用于管理...

      EJB3.1_JSR 318-EJB3.1

      - **标题**:“EJB3.1_JSR 318-EJB3.1” - **描述**:此文档是EJB 3.1规范(JSR 318),与EJB 3.0相比,新增的功能包括: - 取消接口要求。 - 引入单例会话Bean(Singleton session bean)。 - 支持异步调用。 -...

      EJB3.1技术培训

      - **实体Bean (Entity Bean)**:尽管在EJB3.1中不再推荐使用,但在早期版本中,实体Bean用于表示持久化的对象,类似于现在的JPA实体。 - **消息驱动Bean (Message-Driven Bean)**:用于处理来自消息中间件的消息,...

      EJB 3.1 Cookbook

      - EJB 3.1允许将bean打包在JAR或WAR文件中,降低了部署的复杂性。 总的来说,《EJB 3.1 Cookbook》这本书深入浅出地讲解了如何利用EJB 3.1版本来构建高效、可靠的企业级应用,是Java EE开发者的重要参考资料。通过...

      EJB3.1讲解

      ### EJB3.1讲解 #### EJB概要 ##### EJB基本概念 EJB(Enterprise JavaBeans)是由Sun Microsystems提出的、面向企业级应用的一种组件模型。它旨在为开发复杂的企业级应用程序提供一种标准化的方式。在EJB的概念...

      _EJB3.1javaFX搭建工程.doc

      在EJB3.1项目中,JavaFX可以用于构建用户界面,提供丰富的视觉效果。JavaFX2.2虽然发布时间不长,文档和资源有限,但在小型项目或辅助工具上,它可以作为试验性的技术选择。 【开发环境与工具】 开发EJB3.1项目通常...

      EJB 3.1 Core

      在EJB 3.1中,开发者可以使用`@Local`和`@Remote`注解来定义本地接口和远程接口,从而使得客户端能够透明地访问EJB组件的服务。 ##### 2.3 事务处理 EJB 3.1增强了事务管理能力,支持多种事务类型(如`REQUIRED`, ...

      EJB3.1与JBoss7.1.1在eclipse的实现

      标题《EJB3.1与JBoss7.1.1在eclipse的实现》意味着本文档将介绍如何使用EJB3.1标准在JBoss应用服务器7.1.1版本上进行企业级Java Bean(EJB)的开发,并通过Eclipse集成开发环境进行部署和测试。EJB3.1是一种用于简化...

      EJB 3.1五大模式改进令Java EE 6更好用

      在深入解析EJB 3.1的五大改进模式之前,我们首先简要回顾一下EJB(Enterprise Java Beans)的基本概念及其在Java EE平台中的重要性。EJB是Java EE的核心组件之一,旨在提供企业级应用所需的高级功能,如事务管理、...

      j2ee ejb3.1

      - EJB 3.1规范中引入了拦截器,这是一类可以插入到bean方法调用链中的组件,用于执行通用操作,如日志、事务控制、安全检查等。`ejb_interceptors-3_1-pfd-spec.pdf`可能详细介绍了这部分内容。 5. **Web服务集成*...

      EJB.3.1.Cookbook.pdf

      3. **高级特性讲解**:介绍了 EJB 3.1 中新增的特性,如异步调用、RESTful 服务支持等。 4. **安全性管理**:探讨如何利用 EJB 3.1 的安全机制保护应用程序免受攻击。 5. **性能优化技巧**:分享了一系列提高 EJB ...

      javax.ejb-3.1.2.2.jar下载

      标题中的"javax.ejb-3.1.2.2.jar"是一个特定版本的EJB API的实现,它对应于EJB 3.1规范的2.2次小更新。这个jar文件是开发人员在EJB 3.1环境中开发、测试和部署企业级Java应用程序所必需的依赖库。EJB 3.1是EJB规范的...

      jboss7.1+ejb3.1建立第一个Ejb项目

      本篇文章将指导你如何使用JBoss7.1和EJB3.1在Eclipse3.7环境中创建你的第一个EJB项目。EJB(Enterprise JavaBeans)是一种Java平台上的组件模型,用于构建可扩展的、可靠的、安全的企业级应用。JBoss是Red Hat公司...

      EJB3.1CookbookFreePdfBook.pdf 英文原版

      EJB 3.1 Cookbook – Free Pdf Book

      ejb3.1 cookbook

      标题《EJB3.1 Cookbook》表明这是一本关于企业Java Bean (EJB) 技术的实用指南,其第三版专注于提供一系列解决实际问题的简单而非常有效的方法。EJB是Java EE(现在称为Jakarta EE)的一部分,用于简化基于Java的...

      javax.ejb-3.1.2.2_with-source.zip

      在"javax.ejb-3.1.2.2-sources.jar"中,你可以找到这些接口和类的源代码,这对于理解EJB的工作原理、自定义行为以及调试问题非常有帮助。同时,"javax.ejb-3.1.2.2.jar"则是编译后的类库文件,用于实际项目中的部署...

      ejb-3_1-pr-api.zip_EJB a_ejb_ejb api

      在这个ejb-3_1-pr-api.zip文件中,我们主要关注的是EJB 3.1的编程模型和API。 EJB 3.1的重要特性包括: 1. **注解驱动的开发**:与EJB 2.x相比,EJB 3.1大量使用了Java注解,使得开发者无需编写大量的XML配置文件...

    Global site tag (gtag.js) - Google Analytics