一. 定时调度
导入依赖
<dependency>
<groupId>com.dragonsoft</groupId>
<artifactId>duceap-boot-starter-job</artifactId>
</dependency>
启动类上添加注解
@EnableScheduling
启动flyway自动生成表T_SCHEDULE_JOB
配置案例
INSERT INTO T_SCHEDULE_JOB ("JOB_NAME", "JOB_CLASS", "JOB_TYPE", "CRON", "CRON_DETAIL", "SHARDING_TOTAL_COUNT", "SHARDING_ITEM_PARAMETERS", "JOB_PARAMETER", "FAILOVER", "MISFIRE", "MONITOREXECUTION", "DESCRIPTION", "JOB_PROPERTIES", "OTHER_CONFIG", "APP_CODE", "DISABLED", "CREATE_TIME", "CREATE_USER", "UPDATE_TIME", "STREAMING_PROCESS", "SCRIPT_COMMAND_LINE") VALUES ('exjob', 'MyDataBaseJob', 'Simple', '0/5 * * * * ?', NULL, '3', '0=A,1=B,2=C', 'test', '1', '1', '0', 'simple job', NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL);
每5秒执行一次
@ElasticJobConf
中的name属性与T_SCHEDULE_JOB
表的JOB_NAME
值对应
///**
// * 配置数据库t_schedule_job 来实现调度
// */
@ElasticJobConf(name = "exjob",configProvider = ConfigProvider.database )
public class DataBaseJob extends AbstractSimpleJob{
@Override
public void execute(ShardingContextWapper shardingContextWapper) {
String shardParamter = shardingContextWapper.getShardingParameter();
System.out.println(shardingContextWapper.getJobName()+"MySimpleJob分片参数:"+shardParamter);
}
}
配置文件配置
#是否开启elasticJob计划,默认为true
duceap.elastic.job.enabled=true
#连接Zookeeper服务器的列表包括IP地址和端口号多个地址用逗号分隔如: host1:2181,host2:2181
duceap.elastic.job.zk.serverLists=localhost:2181
#Zookeeper的命名空间
duceap.elastic.job.zk.namespace=job_test1
#duceap.elastic.job.zk.digest=root
#cron表达式,用于控制作业触发时间
duceap.elastic.job.MySimpleJob.cron=0/20 * * * * ?
#本地配置是否可覆盖注册中心配置 如果可覆盖,每次启动作业都以本地配置为准
duceap.elastic.job.MySimpleJob.overwrite=true
#作业分片总数
duceap.elastic.job.MySimpleJob.shardingTotalCount=3
#分片序列号和参数用等号分隔,多个键值对用逗号分隔 分片序列号从0开始,不可大于或等于作业分片总数
#如:0=a,1=b,2=c
duceap.elastic.job.MySimpleJob.shardingItemParameters=0=A,1=B,2=C
#作业自定义参数
duceap.elastic.job.MySimpleJob.jobParameter=test
#是否开启任务执行失效转移,默认false
duceap.elastic.job.MySimpleJob.failover=true
#是否开启错过任务重新执行,默认true
duceap.elastic.job.MySimpleJob.misfire=true
duceap.elastic.job.MySimpleJob.description=simple job
#监控作业运行时状态,默认false
duceap.elastic.job.MySimpleJob.monitorExecution=false
#前置后置任务监听实现类
duceap.elastic.job.MySimpleJob.listener=com.dragonsoft.duceap.elasticjob.handler.MessageElasticJobListener
#扩展异常处理类
duceap.elastic.job.MySimpleJob.jobExceptionHandler=com.dragonsoft.duceap.elasticjob.handler.CustomJobExceptionHandler
#是否启用JOB
duceap.elastic.job.MySimpleJob.disabled=false
#作业事件追踪的数据源Bean引用
duceap.elastic.job.MySimpleJob.eventTraceRdbDataSource=dataSource
#是否启用Mq作业事件追踪,默认false,当eventTraceRdbDataSource有配置则此优先
#duceap.elastic.job.MySimpleJob.eventTraceMQEnabled=true
#当启用Mq作业事件追踪采用的消息主题,默认90000001主题
#duceap.elastic.job.MySimpleJob.eventTraceMQTopic=90000001
网友评论