EasySchedule定时任务web平台
搜了下开源定时web任务项目,easySchedule首推
一、easySchedule概述
quartz提供了基本的定时任务管理方法,与spring结合可以方便的使用定时任务。但quartz的弊端也显而易见,比如动态修改定时配置,定时任务的统一管理界面、调度和监控都是十分不便的。我们曾于quartz开发了定时任务的管理模块,主要针对定时任务的定时配置进行管理。技术总监徐总提出了使用easyschedule的方案,我们针对这一解决方案比较方便的解决了公司内部各信息系统的定时任务的管理和监控,以下是easySchedule的使用总结,比较简单,以下的代码实现方案主要是为了将原quartz的实现无缝的与easySchedule结合,涉及的主要是使用。明天会接接入,特别是小型web系统的接入方法做更详细的描述。
EasySchedule 是基于quartz的集群、分布式任务调度平台。广告技术部前端原有定时任务功能 相对比较简单,交互性差,任务部署效率低, 开发和维护成本高,不能很好满足各系统定时任务 的管理和控制; 大量Crontab触发的shell任务分散于各处系统,无法统一进 行管理,维护成本很高;许多任务都是单机部署,可用性差。
主要功能:
1.集群管理调度,分布式部署:保证系 统的高可用性、伸缩性、负载均衡。
2.友好的操作界面:通过控制台部署管 理任务,方便灵活高效。
3.任务持久化于数据库,远离宕机和数 据丢失隐患,完善的任务失败重做机制,及详细的任务跟踪及告警策略。
优点:
1Server和Client分别支持集群和分布式部署
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: 最终在打包时候会生成一个war包。这个需要我们部署到tomcat中 然后运行起来。
es-docs:里面存放一些文档和 建表语句和表数据内容。
使用 EasySchedule分为两点:
将es-client生成的jar包引入到我们自己的项目当中 (后面会作介绍)
将es-server生成的war部署成功
1.3 服务端部署
1.根据文档中的的建表语句创建表 并插入数据内容。
2.配置数据源
3.打开es-core项目下src/mian/resources下面的springbeans-es-ds.xml文件
<bean id="easyscheduleDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/easyscheduleDataSource</value>
</property>
</bean>
4.在tomcat下面conf下面context.xml加上以下配置
<Resource name="jdbc/easyscheduleDataSource" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://172.16.100.131:3307/test_crm"
username="test_crm" password="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
资料:https://blog.51cto.com/jncumter/1746859