定时任务
来源:互联网 发布:电脑测温度软件 编辑:程序博客网 时间:2024/06/05 16:10
Elastic-Job的SimpleJob类型作业
Simple类型作业意为简单实现,未经任何封装的类型。需要继承AbstractSimpleElasticJob,该类只提供了一个方法用于覆盖,此方法将被定时执行。用于执行普通的定时任务,与Quartz原生接口相似,只是增加了弹性扩缩容和分片等功能。
引入maven依赖
elastic-job已经发布到中央仓库,可以在pom.xml文件中直接引入maven坐标。
<!-- 当当分布式任务调度 --><!-- 引入elastic-job核心模块 --><dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-core</artifactId> <version>1.1.1</version></dependency><!-- 使用springframework自定义命名空间时引入 --><dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-spring</artifactId> <version>1.1.1</version></dependency>
SimpleJob
@Component("simpleElasticJob")public class DemoSimpleElasticJob extends AbstractSimpleElasticJob { @Override public void process(JobExecutionMultipleShardingContext jobExecutionMultipleShardingContext) { // do something by sharding items }}
Spring命名空间配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:reg="http://www.dangdang.com/schema/ddframe/reg" xmlns:job="http://www.dangdang.com/schema/ddframe/job" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.dangdang.com/schema/ddframe/reg http://www.dangdang.com/schema/ddframe/reg/reg.xsd http://www.dangdang.com/schema/ddframe/job http://www.dangdang.com/schema/ddframe/job/job.xsd "> <!--配置作业注册中心--> <!--<reg:zookeeper id="regCenter" server-lists="${JOB_URL}"--> <!--namespace="${namespace}" base-sleep-time-milliseconds="1000"--> <!--max-sleep-time-milliseconds="3000" max-retries="3" />--> <!--配置作业注册中心 --> <bean id="zkConfig" class="com.dangdang.ddframe.reg.zookeeper.ZookeeperConfiguration"> <property name="serverLists" value="${worker.zk.servers.urls}"/> <property name="namespace" value="${namespace}"/> <property name="baseSleepTimeMilliseconds" value="1000"/> <property name="maxSleepTimeMilliseconds" value="3000"/> <property name="maxRetries" value="3"/> </bean> <bean id="regCenter" class="com.dangdang.ddframe.reg.zookeeper.ZookeeperRegistryCenter" init-method="init"> <constructor-arg ref="zkConfig"/> </bean> <!-- 每隔三分钟执行一次测试任务 --> <job:simple id="simpleElasticJob" class="com.worker.service.worker.DemoSimpleElasticJob" registry-center-ref="regCenter" cron="0 0/3 * * * ?" sharding-total-count="1" ></job:simple></beans>
reg:bean命名空间属性详细说明
是
注册中心在Spring
容器中的主键server-listsString是
连接Zookeeper
服务器的列表包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181namespaceString
是
Zookeeper
的命名空间base-sleep-time-millisecondsint否1000等待重试的间隔时间的初始值单位:毫秒max-sleep-time-millisecondsint否3000等待重试的间隔时间的最大值
单位:毫秒max-retriesint否3最大重试次数session-timeout-millisecondsint否60000会话超时时间
单位:毫秒connection-timeout-millisecondsint否15000连接超时时间
单位:毫秒digestString否无验证连接
Zookeeper
的权限令牌缺省为不需要权限验证nested-portint否-1内嵌
Zookeeper
的端口号-1表示不开启内嵌
Zookeeper
nested-data-dirString否 内嵌Zookeeper
的数据存储路径为空表示不开启内嵌
Zookeeper
job:simple命名空间属性详细说明
是
作业名称classString否 作业实现类,需实现ElasticJob
接口,脚本型作业不需要配置registry-center-refString是
注册中心Bean
的引用,需引用reg:zookeeper
的声明cronString是
cron
表达式,用于配置作业触发时间sharding-total-countint是
作业分片总数sharding-item-parametersString否 分片序列号和参数用等号分隔,多个键值对用逗号分隔分片序列号从
0
开始,不可大于或等于作业分片总数如:
0=a,1=b,2=c
job-parameterString否 作业自定义参数可以配置多个相同的作业,但是用不同的参数作为不同的调度实例monitor-executionboolean否true监控作业运行时状态
每次作业执行时间和间隔时间均非常短的情况,建议不监控作业运行时状态以提升效率。因为是瞬时状态,所以无必要监控。请用户自行增加数据堆积监控。并且不能保证数据重复选取,应在作业中实现幂等性。
每次作业执行时间和间隔时间均较长的情况,建议监控作业运行时状态,可保证数据不会重复选取。monitor-portint否-1作业监控端口
建议配置作业监控端口, 方便开发者dump作业信息。
使用方法: echo “dump” | nc 127.0.0.1 9888max-time-diff-secondsint否-1最大允许的本机与注册中心的时间误差秒数
如果时间误差超过配置秒数则作业启动时将抛异常
配置为
-1
表示不校验时间误差failoverboolean否false是否开启失效转移仅
monitorExecution
开启,失效转移才有效misfireboolean否true是否开启错过任务重新执行job-sharding-strategy-classString否true作业分片策略实现类全路径默认使用平均分配策略
详情参见:作业分片策略descriptionString否 作业描述信息disabledboolean否false作业是否禁止启动
可用于部署作业时,先禁止启动,部署结束后统一启动overwriteboolean否false本地配置是否可覆盖注册中心配置
如果可覆盖,每次启动作业都以本地配置为准
Spring集成Quartz定时任务
增加Quartz的Maven依赖
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version></dependency>
Spring配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" default-autowire="byName"> <!-- CronTask --> <bean id="cronTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="generateSettlementForNatureWeekTaskJob" /> <property name="cronExpression" value="${ecc.worker.generate.settlement.nature.week}"></property> </bean> <bean id="cronTaskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!--实际调用类--> <property name="targetObject" ref="cronTask" /> <!--实际调用方法--> <property name="targetMethod" value="execute" /> </bean> <bean id="cronTask" class="com.b2b.worker.service.worker.CronTask" /></beans>
在线cron表达式:http://cron.qqe2.com/
阅读全文
0 0
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 定时任务
- 九度oj:求哈夫曼树(小顶堆数据结构)
- 网狐荣耀版苹果端ipa打包流程说明
- junit测试——其实能提高代码效率和质量
- groub相关总结
- Java Java 9新特性
- 定时任务
- 知识回顾(一)--类的封装
- 复合,继承,委托
- Android横竖切屏生命周期回调情况
- fopen打开文件mode设置缺少‘b’引发的血案
- 分享四种将PDF文件转换为CAD文件的方法,总有一个方法适合你
- Linux下安装redis
- 笔记事件响应方法
- 一个python写的小游戏