Alibaba整合xxl-job


title: Alibaba整合xxl-job
date: 2019-08-21 09:12:30
categories: 项目实战
tags:

  • xxl-job
  • spring cloud alibaba
    cover: https://www.github.com/OneJane/blog/raw/master/小书匠/1566388214661.png

基于spring cloud alibaba实战整合开发

ht-micro-record-service-job

    
        com.htdc
        ht-micro-record-dependencies
        1.0.0-SNAPSHOT
        ../ht-micro-record-dependencies/pom.xml
    

    ht-micro-record-service-job
    jar

    ht-micro-record-service-job
    http://www.htdatacloud.com/
    2019-Now

    
        
            com.xuxueli
            xxl-job-core
            2.1.0
        

        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        

        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-config
            
                
                    com.alibaba
                    fastjson
                
                
                    com.google.guava
                    guava
                
            
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            
                
                    com.google.guava
                    guava
                
            
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-sentinel
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
            
                
                    com.google.guava
                    guava
                
                
                    com.google.code.findbugs
                    jsr305
                
                
                    org.hdrhistogram
                    HdrHistogram
                
            
        
        
            org.springframework.cloud
            spring-cloud-starter-stream-rocketmq
            
                
                    com.alibaba
                    fastjson
                
            
        
        

        
        
            com.htdc
            ht-micro-record-commons-service
            ${project.parent.version}
        
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    ht.micro.record.service.job.JobServiceApplication
                
            
        
    

bootstrap.properties

spring.application.name=ht-micro-record-service-xxl-job-config
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.server-addr=192.168.2.7:8848,192.168.2.7:8849,192.168.2.7:8850

application.yaml

spring:
  datasource:
    druid:
      url: jdbc:mysql://192.168.2.7:185/ht_micro_record?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password: 123456
      initial-size: 1
      min-idle: 1
      max-active: 20
      test-on-borrow: true
      driver-class-name: com.mysql.jdbc.Driver
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.2.7:8848,192.168.2.7:8849,192.168.2.7:8850
      config:
        server-addr: 192.168.2.7:8848,192.168.2.7:8849,192.168.2.7:8850

server:
  port: 9701

xxl:
  job:
    executor:
      logpath: logs/xxl-job/jobhandler
      appname: xxl-job-executor
      port: 1234
      logretentiondays: -1
      ip: 192.168.3.233
    admin:
      addresses: http://192.168.2.7:183/xxl-job-admin
    accessToken:

nacos配置

spring:
  application:
    name: ht-micro-record-service-xxl-job

  cloud:
    nacos:
      discovery:
        server-addr: 192.168.2.7:8848,192.168.2.7:8849,192.168.2.7:8850
    sentinel:
      transport:
        port: 8719
        dashboard: 192.168.2.7:190


server:
  port: 9701

management:
  endpoints:
    web:
      exposure:
        include: "*"

com/ht/micro/record/service/job/JobServiceApplication.java

@SpringBootApplication(scanBasePackages = "com.ht.micro.record")
@EnableDiscoveryClient
@MapperScan(basePackages = "com.ht.micro.record.commons.mapper")
public class JobServiceApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(JobServiceApplication.class, args);
    }

}

com/ht/micro/record/service/job/config/XxlJobConfig.java

@Configuration
@ComponentScan(basePackages = "com.ht.micro.record.service.job.handler")
public class XxlJobConfig {
     
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${
       xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${
       xxl.job.executor.appname}")
    private String appName;

    @Value("${
       xxl.job.executor.ip}")
    private String ip;

    @Value("${
       xxl.job.executor.port}")
    private int port;

    @Value("${
       xxl.job.accessToken}")
    private String accessToken;

    @Value("${
       xxl.job.executor.logpath}")
    private String logPath;

    @Value("${
       xxl.job.executor.logretentiondays}")
    private int logRetentionDays;


    @Bean(initMethod = "start", destroyMethod = "destroy")
    public XxlJobSpringExecutor xxlJobExecutor() {
     
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppName(appName);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

}

com/ht/micro/record/service/job/handler/TestJobHandler.java

@JobHandler(value="testJobHandler")
@Component
public class TestJobHandler extends IJobHandler {


    @Override
    public ReturnT execute(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");

        for (int i = 0; i < 5; i++) {
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }

        return SUCCESS;
    }
}

http://192.168.2.7:183/xxl-job-admin

你可能感兴趣的:(项目实战,xxl-job,spring,cloud,alibaba)