搜了下开源定时web任务项目,easySchedule首推
一、easySchedule概述
<代码>石英提供了基本的定时任务管理方法,与春天结合可以方便的使用定时任务。但石英的弊端也显而易见,比如动态修改定时配置,定时任务的统一管理界面,调度和监控都是十分不便的。我们曾于石英开发了定时任务的管理模块,主要针对定时任务的定时配置进行管理。技术总监徐总提出了使用easyschedule的方案,我们针对这一解决方案比较方便的解决了公司内部各信息系统的定时任务的管理和监控,以下是easyschedule的使用总结,比较简单,以下的代码实现方案主要是为了将原石英的实现无缝的与easyschedule结合,涉及的主要是使用。明天会接接入,特别是小型网络系统的接入方法做更详细的描述。 EasySchedule是基于石英的集群,分布式任务调度平台。广告技术部前端原有定时任务功能相对比较简单,交互性差,任务部署效率低,开发和维护成本高,不能很好满足各系统定时任务的管理和控制;大量Crontab触发的壳任务分散于各处系统,无法统一进行管理,维护成本很高;许多任务都是单机部署,可用性差。代码>
主要功能:
1。集群管理调度,分布式部署:保证系统的高可用性,伸缩性,负载均衡。
2。友好的操作界面:通过控制台部署管理任务,方便灵活高效。
3。任务持久化于数据库,远离宕机和数据丢失隐患,完善的任务失败重做机制,及详细的任务跟踪及告警策略。
优点:
1服务器和客户端分别支持集群和分布式部署
2。任务的执行与调度分离
3。可视化管理所有任务
4。任务状态持久化于DB
5。完善的日志跟踪和告警策略
6。任务支持异步调度
7。灵活支持各种自定义任务,扩展方便。
技术架构
功能域:
1.1×××地址
下载地址:http://code.taobao.org/svn/easyschdeule/
1.2代码结构
<代码> EasySchedule它是一个maven项目所以导入maven项目它的结构这这样的:代码>
wKioL1bWsPzzcFu9AAAeZmCVxwE492.png
es-client:最终在打包的时候会生成一个jar包。这个将会被我们添加到我们自己的项目当中
es server:最终在打包时候会生成一个战争包。这个需要我们部署到tomcat中然后运行起来。
es-docs:里面存放一些文档和建表语句和表数据内容。
使用EasySchedule分为两点:
将es-client生成的jar包引入到我们自己的项目当中(后面会作介绍)
将es server生成的战争部署成功
1.3服务端部署
1。根据文档中的的建表语句创建表并插入数据内容。
2。配置数据源
3。打开es-core项目下src/面/资源下面的springbeans-es-ds.xml文件
& lt; bean id=癳asyscheduleDataSource"类=皁rg.springframework.jndi.JndiObjectFactoryBean"祝辞
& lt;属性名=癹ndiName"在
& lt; value> java: comp/env/jdbc/easyscheduleDataSource
& lt;/property>
& lt;/bean>
4。在tomcat下面配置下面context.xml加上以下配置
& lt;资源名称=癹dbc/easyscheduleDataSource"auth=癈ontainer"
<代码>类型=癹avax.sql.DataSource” driverClassName=" com.mysql.jdbc.Driver " url=" jdbc: mysql://172.16.100.131:3307/test_crm” 用户名=" test_crm "密码=" test_crm " maxActive=" 20 " maxIdle=" 10 " maxWait=" 1000 "/比;代码>
5。更换jar包
将cglib - 2.1 - _3.jar包更换成cglib-2.2.2.jar包
6。部署成功后可以访问我们可以看到这样的页面
7。待解决问题
地址:http://bbs.51cto.com/viewthread.php?tid=1547960