ElasticJob 是一款分布式任务调度框架,支持分片、弹性扩缩容和故障转移,轻松应对海量任务调度。
官方开发指南参考:https://shardingsphere.apache.org/elasticjob/current/cn/overview/
ElasticJob 提供基于数据库的事件追踪功能,记录作业执行日志、异常日志等。本文主要介绍ElasticJob的简单开发,以及如何将GaussDB作为ElasticJob事件追踪数据库。
连接GaussDB,推荐使用官方驱动。
-
连接串:
jdbc:gaussdb://host:port/database -
Driver名称:
com.huawei.gaussdb.jdbc.Driver -
maven
<dependency> <groupId>com.huaweicloud.gaussdb</groupId> <artifactId>gaussdbjdbc</artifactId> <version>506.0.0.b058</version> </dependency>
使用3.1.0以上的版本
<dependency>
<groupId>org.apache.shardingsphere.elasticjob</groupId>
<artifactId>elasticjob-spring-boot-starter</artifactId>
<version>3.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere.elasticjob</groupId>
<artifactId>elasticjob-spring-boot-starter</artifactId>
<version>3.1.0-SNAPSHOT</version>
</dependency>elasticjob.tracing.type=RDB
elasticjob.tracing.datasource.url=jdbc:gaussdb://localhost:8000/hibernate_orm_test?currentSchema=test&preparedStatementCacheQueries=0&batchMode=off
elasticjob.tracing.datasource.driver-class-name=com.huawei.gaussdb.jdbc.Driver
elasticjob.tracing.datasource.username=hibernate_orm_test
elasticjob.tracing.datasource.password=Hibernate_orm_test@1234
elasticjob.regCenter.serverLists=localhost:2181
elasticjob.regCenter.namespace=elasticjob-springboot
elasticjob.jobs.simpleJob.elasticJobClass=com.example.quartdemo.SpringBootSimpleJob
elasticjob.jobs.simpleJob.cron=0/5 * * * * ?
elasticjob.jobs.simpleJob.shardingTotalCount=3
elasticjob.jobs.simpleJob.shardingItemParameters=0=Beijing,1=Shanghai,2=Guangzhou@Component
public class SpringBootSimpleJob implements SimpleJob {
@Override
public void execute(final ShardingContext shardingContext) {
System.out.println("simple job start");
}
}