All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cloud.task.annotation.ScheduledTask Maven / Gradle / Ivy

package com.cloud.task.annotation;

import java.lang.annotation.*;

import org.springframework.stereotype.Component;

/**
 * 〈ScheduledTask〉
* * @author number68 * @create 2019/4/25 * @since 0.1 */ @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface ScheduledTask { /** * job名称 */ String name(); /** * job描述信息 */ String description() default ""; /** * cron表达式,用于控制作业触发时间 */ String cron() default ""; /** * job分片总数. * 为1的时候,整个集群中只会有一个进程去执行该Job,在服务器数量没有波动的情况下,任务总会在固定某个进程上执行。 * 在作业执行前进程如果挂了,那作业会被分配到集群某一个存活的进程中. */ int shardingTotalCount() default 1; /** * 分片序列号和参数用等号分隔,多个键值对用逗号分隔
* 分片序列号从0开始,不可大于或等于作业分片总数
* 如:0=a,1=b,2=c */ String shardingItemParameters() default ""; /** * 作业自定义参数
* 作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业
* 例:每次获取的数据量、作业实例从数据库读取的主键等 */ String jobParameter() default ""; /** * 是否开启任务执行失效转移
* 如果为true,当作业在执行过程中异常中断,作业会被分发到集群中存活的结点 */ boolean failover() default true; /** * 是否开启错过任务重新执行 */ boolean misfire() default false; /** * 是否用SpringBoot里的覆盖Zookeeper里的Job配置 */ boolean overwrite() default false; /** * 是否流式处理数据
* 如果流式处理数据, 则fetchData不返回空结果将持续执行作业
* 如果非流式处理数据, 则处理数据完成后作业结束
*/ boolean streamingProcess() default false; /** * 监控作业运行时状态,幂等机制(monitorExecution),来确保同一条数据不会被多个Job同时处理,避免同一条数据被同一个Job实例的多个线程处理。
* 每次作业执行时间和间隔时间均非常短的情况,建议不监控作业运行时状态以提升效率。
* 因为是瞬时状态,所以无必要监控。请用户自行增加数据堆积监控。并且不能保证数据重复选取,应在作业中实现幂等性。
* 每次作业执行时间和间隔时间均较长的情况,建议监控作业运行时状态,可保证数据不会重复选取。
*/ boolean monitorExecution() default true; /** * 作业监控端口
* 建议配置作业监控端口, 方便开发者dump作业信息。
* 使用方法: echo “dump” | nc 127.0.0.1 9888
*/ int monitorPort() default -1; /** * 最大允许的本机与注册中心的时间误差秒数
* 如果时间误差超过配置秒数则作业启动时将抛异常
* 配置为-1表示不校验时间误差
*/ int maxTimeDiffSeconds() default -1; /** * 作业分片策略实现类全路径,默认使用平均分配策略
*/ String jobShardingStrategyClass() default ""; /** * 修复作业服务器不一致状态服务调度间隔时间
* 配置为小于1的任意值表示不执行修复,单位:分钟 */ int reconcileIntervalMinutes() default 10; /** * 任务执行日志数据源,以名称获取(注意不是DataSource而是{@link com.dangdang.ddframe.job.event.JobEventConfiguration})
* 如果为空就使用系统缺省的:由`com.cloud.task.config.ScheduledTaskConfig`自动创建的`defaultJobEventConfiguration`Bean,参见{@link com.cloud.task.config.JobEventRdbConfiguration} */ String eventTraceRdbDataSource() default ""; /** * 作业是否禁止自动启动
* 如果为true,在开始部署的时候作业不会自启动,即使到了触发时间,需要在控制台手动触发。 */ boolean disabled() default false; /** * 前置后置任务监听实现类,需实现ElasticJobListener接口
*/ String listener() default ""; /** * 前置后置任务分布式监听实现类,需继承AbstractDistributeOnceElasticJobListener类
*/ String distributedListener() default ""; /** * 最后一个作业执行前的执行方法的超时时间,单位:毫秒
*/ long startedTimeoutMilliseconds() default Long.MAX_VALUE; /** * 最后一个作业执行后的执行方法的超时时间,单位:毫秒
*/ long completedTimeoutMilliseconds() default Long.MAX_VALUE; /** * 自定义异常处理类
*/ String jobExceptionHandler() default "com.dangdang.ddframe.job.executor.handler.impl.DefaultJobExceptionHandler"; /** * 自定义业务处理线程池 */ String executorServiceHandler() default "com.dangdang.ddframe.job.executor.handler.impl.DefaultExecutorServiceHandler"; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy