`
shazhifeng
  • 浏览: 126763 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Quartz Job Scheduling Framework[翻译]第一章. 企业应用中的作业调度

阅读更多

第一章.  企业应用中的作业调度

    ·什么是作业调度

    ·作业调度为什么说是重要的

    ·企业应用中的作业调度

    ·非企业应用中的作业调度

    ·作业调度与工作流

    ·关于作业调度其他可选择方案


1. 什么是作业调度

“作业”,这一技术述语上的概念,又让我们回到了大型机的年代,那时候,用户/程序员提交一叠穿孔卡片或者纸带(上面描述了一个作业)给操作人员,由操作人员帮忙执行那些作业。用户等待作业执行完后,回到主机那边取自己的卡片和打印出来的输出结果。

因为不是每一个作业要求立即被执行,所以作业可以被安排在将来的某个时候执行。比如说,一个系统管理员每天晚上可能有一份要执行的作业列表:

    · 10:00 PM: 运行患者信息文件的上载作业

    · 11:00 PM: 运行销售数据报表生成

    · 11:59 PM: 进行数据库的备份


作业调度通常是指运行一个批量的作业或称之谓批处理。这种批处理作业一般都是放在后台运行并且不需要与用户交互。现在,显著增多的多样性的任务已代替了早先的批量作业。在一个大的组织中每天的每小时跑上百个作业已属普遍。并且作业的规模与复杂性仍在持续的上扬,因此批量作业和作业调度器也就随需应生。

2. 作业调度为什么说是重要的

俗话说,“时间就是金钱。”,过高的资源投入到枯燥的任务中无疑是金钱和资源的浪费。随着业务流程复杂性的提升,自动化流程也更能显现出它的有益之处来。图 1.1 说明了这一问题。

图1.1 任务规规模越大、越复杂、越频繁的被执行,那么能从自动化中获益也越大


人之所以称之为人,国为我们犯错误的频度远高于电脑。把一系列任务自动安置到一个作业中,然后再为这个作业创建一个调度器,到时这个作业就会自动执行了。相对于人的手工处理,我们可以减少大多数的出错机会。

作业调度器的另一个优点体现在伸缩性。我们也许能一个小时中手工完成10或20个作业,但是随着每小时处理作业数量的增加,我们就更难杜绝不在作业中引入错误。但如果借助于作业调度,只会受到硬件资源的影响了。

所以我们能着实的说通过作业调度那样自动化处理相对于手工来说,至少为我们提供了以下三个优点:

    ·资源使用效率更高

    ·更少的出错机率

    ·更高的伸缩性


3. 企业应用中的作业调度

“企业应用”一词,如今经常会被我们无意识间提及,然而似乎现在还没有对它一个准确的定义。但对于在本书中这一词的意义,我们只要建立起这样一个概念:作为某一组织的一部份而存在的软件系统或程序。这个系统可以是一个大型机上的、或者是一个C/S结构的、或者就是一个J2EE应用。真实世界中的例子就是,作业调度器能在那个系统上大量的使用。以下的几个场景,尽管没有详尽的进行描绘,也涉及到了现今应用软件常常遇到的场景。

场景 #1: 邮件提醒和告警

许多网站(不管是商业的还是别的)允许用户提供用户名和密码注册一个帐户。出于安全考虑,一个好的做法是让用户密码每隔一段时间过期失效,比如说90天的周期。这种情况下,你可以创建一个作业,让它每天午夜运行一次,并且向离过期时间不到三天的所有用户发邮件提醒。这里可以恰到好处的用到作业调度器。图 1.2 描绘了密码这个提醒作业。

图 1.2  密码过期的作业每晚发送邮件给密码很快会过期的用户



除了发过期的密码信息,网站还可以发送其他的告警或提醒(可不是垃圾邮件哦)。一个作业调度器还能够用在类似的其他方面。

场景 #2: 执行文件传输操作

许多商家需要和他们的供应商或客户作信息集成。一种集成的方式就是进行数据文件的交换。可以采用实时的方式,例如SOAP协议,但是许多时候却不需要实时性,代之以异步的方式,譬如用FTP协议来发出或取所要的文件。

下图描绘了一个劳工补偿局每天早上收到一些包含患者及事故信息的文件。公司可以雇一个人每天早上手工的检出FTP服务器上的文件。作为另一个更好的选择就是可以写一个作业,让它每天早上扫描FTP服务器,如果有文件的话,把文件内容处理后插入到患者数据库中去。让作业调度器代劳后,这个职员再也不用手工去上FTP检查文件,而可以为公司做更多别的更有意义的事情。图1.3 描绘了文件传输的操作。

图 1.3. 文件传输的作业检查FTP站点,把患者信息文件处理到数据库中。



场景 #3: 创建销售报表

公司经营由盈亏账目所驱动,其中一个很重要的事情就是经营管理者和财务人员需要拿到最终收入和毛利数据进行分析。抽取销售报表数据可能非常的慢并且很耗资源,因为这通常需要联合多个表从中查询出上千条记录。一个更好的解决途径是在晚上计帐和计价结束后,运行一个作业,让它去生成一些临时表或视图为报表程序所用。创建临时表或视图的方式,使报表生成更具动态特性,而且用户也用不着平白去等待报表的生成,一些报表工具,如水晶报表 XI(Crystal Reports XI) 本身就包含了作业调度器(见图1.4)。

 

 

图 1.4. 销售数据报表程序执行为销售团队产生收入和毛利信息



4. 非企业应用中的作业调度

Quartz 对于许多非企业环境的应用也是很有帮助的。例如,假定你有一个独立的应用程序,事件是基于时钟而不是鼠标的点击激发的。这时候你就可以把Quartz构建到这个应用程序中来,并且安排事件能周期性的被触发。

另一例子是,你也许正想查询数据库并发送邮件,而邮件接受者正是基于这些数据得到的。(译者注:真有些搞不明白)

5. 作业调度与工作流

 

作业调度不是工作流,理解这一点很重的要。它们常被同时应用于一个方案中,但它们是两个截然不同的解决办法,并且都可孤立使用。一个作业通常由几个步骤组成。我们回过头来看前面提到的那个密码过期的作业,实质上它是由三个步骤所组成。

   1. 获取到密码将要过期的用户列表

   2. 为列表中的用户各自发送一个邮件

   3. 更新记录,下次就能知道哪些邮件发送过

这个作业可以使用工作流的优点,作业的每一部份恰好对应着工作流的每一个步骤。这并非意味着离开了工作流,作业调度会有些糟。这是普通的下一步、下一步简单操作。只要作业调度框架与第三方工作流能轻便的解决问题,就是好的。更多的关于Quartz和工作流的内容将会在第十四章,“使用Quartz和工作流”详解。

6. 关于作业调度其他可选择方案

正如你所知,这本书是讲Quartz的,但是Quartz的可替代方案呢?当我们比较作业调度方案的时候肯定要提到别的同类应用,那么现在就来简单介绍一下它们。

Java SDK Timer 和 TimerTask 类

java.util.Timer和java.util.TimerTask这两个类是自1.3版本才加入到JDK中来的。这两个新类可以实现一个最基本的调度器。也就只能作为我们理想的完整调度器框架的一个小的部件。任何严格意义的作业调度器都提供直接指定执行时间,存储作业信息到多种介绍和使用钩子进行定制及其他更多的功能。单纯靠JDK的那两个类还不足以构建一个真正的作业调度器。JAVA的Timer类也没办法对作业和触发器作相应的组织,使用每任务一个线程,而不是线程池的方式,还有其他不足之处难以成全其实现一个完全意义的作业调度器。

本土方案

从前面提到的Timer和TimerTask类来看,我们很容易低估创建一个灵活的、并且日后可扩展的作业调度器所作出的努力。创建一个作业调度器也不视之为微不足道的活儿。它需要的不仅仅是Java线程方面的专业技术,还需要解决其他更复杂的课题。如果你没有这方面成熟的专业知识,别想着作业调度器能直接随意一份草稿能一蹴而就。

商业解决方案

现在市面上也能见到不少商业的作业调度产品。在本书中,我们不打算花功夫去了解和评估那些商业化产品。表1.1 中列出了当下流行的几个解决方案,你可以通过所给相应的URL获得更详尽的信息。

表 1.1 商业作业调度器
名称 网址
Flux Scheduler www.fluxcorp.com/
Enterprise Batching Queuing www.argent.com/p/qe/qe.html
Unicenter AutoSys Job Management 4.5 www.ca.com
BMC Software ControlM www.bmc.com
Cybermation ESP Espresso 4.2 www.cybermation.corly;9'm
Vexus consulting Avatar Job Scheduling Suite 4.5.5 www.vexus.ca
Argent software The Argent Job Scheduler 4.5A www.argent.com
Tidal Enterprise Scheduler www.tidalsoftware.com

 

分享到:
评论

相关推荐

    SNS单模无芯光纤仿真与传感器结构特性分析——基于Rsoft beamprop模块

    内容概要:本文主要探讨了SNS单模无芯光纤的仿真分析及其在通信和传感领域的应用潜力。首先介绍了模间干涉仿真的重要性,利用Rsoft beamprop模块模拟不同模式光在光纤中的传播情况,进而分析光纤的传输性能和模式特性。接着讨论了光纤传输特性的仿真,包括损耗、色散和模式耦合等参数的评估。随后,文章分析了光纤的结构特性,如折射率分布、包层和纤芯直径对性能的影响,并探讨了镀膜技术对光纤性能的提升作用。最后,进行了变形仿真分析,研究外部因素导致的光纤变形对其性能的影响。通过这些分析,为优化光纤设计提供了理论依据。 适合人群:从事光纤通信、光学工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要深入了解SNS单模无芯光纤特性和优化设计的研究项目,旨在提高光纤性能并拓展其应用场景。 其他说明:本文不仅提供了详细的仿真方法和技术细节,还对未来的发展方向进行了展望,强调了SNS单模无芯光纤在未来通信和传感领域的重要地位。

    发那科USM通讯程序socket-rece

    发那科USM通讯程序socket-set

    嵌入式八股文面试题库资料知识宝典-WIFI.zip

    嵌入式八股文面试题库资料知识宝典-WIFI.zip

    JS+HTML源码与image

    源码与image

    物流行业车辆路径优化:基于遗传算法和其他优化算法的MATLAB实现及应用

    内容概要:本文详细探讨了物流行业中路径规划与车辆路径优化(VRP)的问题,特别是针对冷链物流、带时间窗的车辆路径优化(VRPTW)、考虑充电桩的车辆路径优化(EVRP)以及多配送中心情况下的路径优化。文中不仅介绍了遗传算法、蚁群算法、粒子群算法等多种优化算法的理论背景,还提供了完整的MATLAB代码及注释,帮助读者理解这些算法的具体实现。此外,文章还讨论了如何通过MATLAB处理大量数据和复杂计算,以得出最优的路径方案。 适合人群:从事物流行业的研究人员和技术人员,尤其是对路径优化感兴趣的开发者和工程师。 使用场景及目标:适用于需要优化车辆路径的企业和个人,旨在提高配送效率、降低成本、确保按时交付货物。通过学习本文提供的算法和代码,读者可以在实际工作中应用这些优化方法,提升物流系统的性能。 其他说明:为了更好地理解和应用这些算法,建议读者参考相关文献和教程进行深入学习。同时,实际应用中还需根据具体情况进行参数调整和优化。

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip

    基于灰狼优化算法的城市路径规划Matlab实现——解决TSP问题

    内容概要:本文介绍了基于灰狼优化算法(GWO)的城市路径规划优化问题(TSP),并通过Matlab实现了该算法。文章详细解释了GWO算法的工作原理,包括寻找猎物、围捕猎物和攻击猎物三个阶段,并提供了具体的代码示例。通过不断迭代优化路径,最终得到最优的城市路径规划方案。与传统TSP求解方法相比,GWO算法具有更好的全局搜索能力和较快的收敛速度,适用于复杂的城市环境。尽管如此,算法在面对大量城市节点时仍面临运算时间和参数设置的挑战。 适合人群:对路径规划、优化算法感兴趣的科研人员、学生以及从事交通规划的专业人士。 使用场景及目标:①研究和开发高效的路径规划算法;②优化城市交通系统,提升出行效率;③探索人工智能在交通领域的应用。 其他说明:文中提到的代码可以作为学习和研究的基础,但实际应用中需要根据具体情况调整算法参数和优化策略。

    嵌入式八股文面试题库资料知识宝典-Intel3.zip

    嵌入式八股文面试题库资料知识宝典-Intel3.zip

    嵌入式八股文面试题库资料知识宝典-2019京东C++.zip

    嵌入式八股文面试题库资料知识宝典-2019京东C++.zip

    嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip

    嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip

    物理学领域十字形声子晶体的能带与传输特性研究及应用

    内容概要:本文详细探讨了十字形声子晶体的能带结构和传输特性。首先介绍了声子晶体作为新型周期性结构在物理学和工程学中的重要地位,特别是十字形声子晶体的独特结构特点。接着从散射体的形状、大小、排列周期等方面分析了其对能带结构的影响,并通过理论计算和仿真获得了能带图。随后讨论了十字形声子晶体的传输特性,即它对声波的调控能力,包括传播速度、模式和能量分布的变化。最后通过大量实验和仿真验证了理论分析的正确性,并得出结论指出散射体的材料、形状和排列方式对其性能有重大影响。 适合人群:从事物理学、材料科学、声学等相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解声子晶体尤其是十字形声子晶体能带与传输特性的科研工作者,旨在为相关领域的创新和发展提供理论支持和技术指导。 其他说明:文中还对未来的研究方向进行了展望,强调了声子晶体在未来多个领域的潜在应用价值。

    嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_.zip

    嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_

    e2b8a-main.zip

    e2b8a-main.zip

    少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip

    少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip

    【HarmonyOS分布式技术】远程启动子系统详解:跨设备无缝启动与智能协同的应用场景及未来展望

    内容概要:本文详细介绍了HarmonyOS分布式远程启动子系统,该系统作为HarmonyOS的重要组成部分,旨在打破设备间的界限,实现跨设备无缝启动、智能设备选择和数据同步与连续性等功能。通过分布式软总线和分布式数据管理技术,它能够快速、稳定地实现设备间的通信和数据同步,为用户提供便捷的操作体验。文章还探讨了该系统在智能家居、智能办公和教育等领域的应用场景,展示了其在提升效率和用户体验方面的巨大潜力。最后,文章展望了该系统的未来发展,强调其在技术优化和应用场景拓展上的无限可能性。 适合人群:对HarmonyOS及其分布式技术感兴趣的用户、开发者和行业从业者。 使用场景及目标:①理解HarmonyOS分布式远程启动子系统的工作原理和技术细节;②探索该系统在智能家居、智能办公和教育等领域的具体应用场景;③了解该系统为开发者提供的开发优势和实践要点。 其他说明:本文不仅介绍了HarmonyOS分布式远程启动子系统的核心技术和应用场景,还展望了其未来的发展方向。通过阅读本文,用户可以全面了解该系统如何通过技术创新提升设备间的协同能力和用户体验,为智能生活带来新的变革。

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip

    少儿编程scratch项目源代码文件案例素材-激光反弹.zip

    少儿编程scratch项目源代码文件案例素材-激光反弹.zip

    COMSOL相控阵检测技术在有机玻璃斜楔中检测工件内部缺陷的应用研究

    内容概要:本文详细介绍了COMSOL相控阵检测技术在有机玻璃斜楔上放置16阵元进行工件内部缺陷检测的方法。首先阐述了相控阵检测技术的基本原理,特别是通过控制各阵元的激发时间和相位来实现声波的聚焦和扫描。接着,重点解析了横孔缺陷的反射接收波,解释了波的折射现象及其背后的物理原因。最后,通过实例展示了COMSOL模拟声波传播过程的成功应用,验证了该技术的有效性和准确性。 适合人群:从事固体力学、无损检测领域的研究人员和技术人员,尤其是对相控阵检测技术和COMSOL仿真感兴趣的读者。 使用场景及目标:适用于需要精确检测工件内部缺陷的研究和工业应用场景,旨在提高检测精度和效率,确保产品质量和安全。 其他说明:文中提到的声速匹配现象有助于理解波在不同介质间的传播特性,这对优化检测参数设置有重要意义。

    少儿编程scratch项目源代码文件案例素材-极速奔跑者.zip

    少儿编程scratch项目源代码文件案例素材-极速奔跑者.zip

    嵌入式八股文面试题库资料知识宝典-微软_interview.zip

    嵌入式八股文面试题库资料知识宝典-微软_interview.zip

Global site tag (gtag.js) - Google Analytics