Design and application of framework for Emailreminding timer in ERP system
WANG Bo
(Wuxi College of City Vocational Technology, Wuxi 214000, China)
Abstract: In the present ERP program, there are a lot of tasks for timing. In order to deal with these tasks automatically, the enterprise task scheduling framework based on Quartz is adopted. The Email reminding framework of timer was designed in 8D management model for Yelong Company in Wuxi. It demands less manual work but improves the management efficiency greatly. The Quartz framework has a sophisticated taskscheduling function, allowing developers to define any scheduling rules flexibly.
Keywords: ERP; Spring; Quartz; timer
收稿日期:201110070引言
企业资源计划(Enterprise Resource Planning,ERP)是基于计算机信息技术和管理科学的最新发展,以计算机信息技术为基础平台,结合先进的企业科学管理理念,充分调配和平衡企业各方面的资源,并以最科学的方式整合企业资源,为企业决策层、管理层和操作层提供项目解决方案,快速达到企业目标。ERP中存在着大量的定时任务,如:客户信用额度的变化、产品价格变更通知、库存出入库盘点月底的报表和工作流程的审批等。为改善企业业务流程,提高企业竞争力,无锡烨隆ERP系统设计中计划通过使用定时器框架来实现定时任务,如邮件自动提醒功能,这样既可以减少人工的干涉,又可以提高办公的效率。ERP系统邮件提醒定时器框架正是在这样的背景下被提出的,该框架结合Spring,同时还要考虑提高代码的可充用性、降低代码的维护成本。
1定时器框架方案的选择
定时任务在现在的信息管理系统中已经大量的使用,在Spring框架中就可以选用3种不同的定时机制。
1.1基于TimerTask的机制
Java中的TimerTask类可以用来执行定时任务,由Spring框架进行封装调用。其中ScheduledTimerTask类定义任务的执行周期,timerTask属性指定执行的工作类;TimerFactoryBean类负责启动定时任务,scheduledTimerTasks属性显示一个需要启动的定时器任务的列表。TimerTask适用于时间间隔相对较短的简单任务。
1.2基于Quartz的机制
Quartz是一个开源任务调度框架,提供了一个比TimerTask更强大的企业级任务调度执行功能,Spring继承并简化了它。Quartz具有很大的灵活性而又不失简单性,能够执行复杂的任务调度。它允许开发人员灵活地定义触发器的调度规则,并可以对触发器和任务进行关联映射。Quartz为基于Spring应用程序提供了便利的类,如MethodInvokingJobDetailFactoryBean,SimpleTriggerBean,CronTriggerBean和SchedulerFactoryBean,以便能够在Spring框架中实现依赖注入,降低了Quartz的使用难度。
1.3基于Executor的机制
Executor框架通过线程池来处理异步任务,也可以执行任务调度服务。其中ScheduledExecutorTask类来指定调度的规则,ScheduledExecutorFactoryBean类完成任务的调度,并且可以通过它来控制线程池中的线程数量。
基于以上分析,TimerTask可以满足简单的定时企业需求;Quartz提供的任务调度服务最为完善,在企业应用非常广泛;Executor提供的线程池服务最为完善。下面将结合Spring框架,使用Quartz来实现定时器的设计。
2定时器框架的设计
基于Quartz的定时器框架首先必须导入所需的jar包,然后根据它所提供的一些类来依次实现相应的配置。详细步骤如下所示:
(1) 声明工作类,该类必须实现相应的业务逻辑,同时将该类中的dao对象也一并包含在内;
(2) 由MethodInvokingJobDetailFactoryBean 类创建调度的任务,并在该任务中需要指明工作类和实现业务逻辑的方法;
(3) 由Spring提供的2个类来实现任务的调度规则,它们具体是:SimpleTriggerBean类配置简单的触发(调度)规则,指明任务执行的时机和频率;CronTriggerBean类配置定制模式的触发(调度)规则,它的功能比SimpleTriggerBean实现的功能要强大,能够控制任务触发(调度)的精确时间,最后还需指明调度触发器与任务之间的映射关系;
(4) 最后由SchedulerFactoryBean 来启动触发器。
3定时器框架的应用
如图1所示,以无锡烨隆ERP系统8D管理模块为例,讲述如何基于Quartz框架开发邮件提醒的定时任务。
图18D质量管理流程图8D管理模块构建使整个团队能够共享信息并努力达成产品质量目标的质量管理体系,能够针对出现的质量问题,及时找出问题产生的根本原因,提出短期、中期和长期对策,并采取相应行动措施。
8D管理模块中由质量部管理系统中的创建8D,8D查询、8D审核、8D跟踪4个子模块以及其他部门管理系统中的8D跟踪子模块共同构成。
首先由质量部的员工填写8D基本信息(发生时间、发生地点、发生事件)、选择责任人并允许上传附件(照片或文档描述),生成一条新的8D信息。创建人(审核人)在完成8D创建(审核)操作后可以给责任人发邮件,提醒责任人及时填写并提交或审核D1D3/D4D5/D6D8信息,相关责任人在规定期限内依据不同的权限在8D跟踪模块中按照步骤解决问题。如果D1D3信息的提交超期或审核超期时,系统将给出超期提醒,并向责任人自动发送提醒邮件(D1D3填写限期1天,审核限期为1天),同样D4D5/D6D8信息如果提交超期或审核超期,系统都将向责任人自动发送提醒邮件。以便立即做出反应,解决问题,提高用户的满意度,降低成本和提高生产率。
定时器框架的开发步骤可以归结为2点:编写任务类和编写配置文件。
3.1编写任务类
在com.cssrc.quartz.service路径下新建一个JobService类,通过该类中的方法来实现任务,如voidautoSendEmail(),该方法用来执行发送邮件的计划任务。
方法中首先需要声明发送邮件所使用的dao,如userDAO,roleDAO,infoEightdDAO,infoOneThreedDAO和infoFourFivedDAO等,并生成相应的getter和setter方法。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)