El uso de xxljob en el proyecto.

1: Descarga el código fuente

En esta descargamos el código fuente a local, luego lo introducimos en la idea, esperando que se complete su construcción, para luego 切换到2.0.2liberar las operaciones posteriores.

2: operación de la base de datos

2.1: inicialización de la base de datos

La doc/db/tables_xxl_job.sqlejecución del script de inicialización de la base de datos para completar el trabajo en la base de datos.

2.2: Modificar la configuración de la base de datos

Modifique el xxl-job-admin/src/main/resources/application.propertiesarchivo y modifique la configuración de la base de datos en él a su información local.

3: inicio

Este es un programa estándar de springboot, puede xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.javainiciar la aplicación directamente , por supuesto, se puede ejecutar en forma de jar o war, que se discutirá más adelante. Después de comenzar, http://127.0.0.1:8080/xxl-job-admin/acceda a través de la dirección , la contraseña de usuario predeterminada admin/123456se xxl-job-admin/src/main/resources/application.propertiesconfigura en, después de iniciar sesión, como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí

4: Definir el actuador

Usamos springboot para definir el ejecutor, donde el código fuente se puede descargar aquí .

4.1: Definir el archivo de configuración

# web port
server.port=8084
### xxl-job admin的地址,用来注册自己的信息
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### APPName,这里需要先通过xxl-job admin手动添加
xxl.job.executor.appname=xxl-job-executor-dongshidaddy
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9991
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
xxl.job.executor.logretentiondays=-1

Tenga en cuenta que xxl.job.executor.appname=xxl-job-executor-dongshidaddydebe agregarlos manualmente en el fondo de xxl-job admin, de la siguiente manera:
Inserte la descripción de la imagen aquí

4.2: Definir la clase de configuración del actuador

dongshi.daddy.config.XxlJobConfig
@Configuration
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;
    }
}

4.3: Inicio

dongshi.daddy.TestDebugRemoteTomcatApplicationComience por clase . Después de comenzar, verifique el fondo de administración de xxl-job, de la siguiente manera, puede ver que la máquina en línea del ejecutor se ha agregado:
Inserte la descripción de la imagen aquí
al Edit Configurationsagregar otra aplicación en la idea , la función principal sigue siendo la misma dongshi.daddy.TestDebugRemoteTomcatApplication, y luego modificar el archivo de configuración En el número de puerto server.port, xxl.job.executor.port(utilizado para la comunicación del actuador), asegúrese de que el número de puerto no entre en conflicto, y luego registre una instancia de actuador, iníciela después de la finalización, como se muestra a continuación, puede ver que una instancia en línea ha sido adicional:
Inserte la descripción de la imagen aquí

5: Defina la tarea

5.1: Definir tareas

@JobHandler(value = "demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {
    
    

    @Override
    public ReturnT<String> execute(String param) throws Exception {
    
    
        System.out.println("demoJobHandler run param is: " + param);
        XxlJobLogger.log("XXL-JOB, Hello World→ → → →.");

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

5.2: Agregar tarea

Como se muestra abajo:
Inserte la descripción de la imagen aquí

5.3: Ver ejecución de tareas

El siguiente es el registro de llamadas en segundo plano:

demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!

Ver el registro de antecedentes xxl:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

6: Ejecutar como un paquete jar

Escriba el paquete jar de la siguiente manera:
Inserte la descripción de la imagen aquí
preste atención a modificar el número de puerto aquí, no entre en conflicto con el anterior y luego simplemente java -jarejecute:

xbdeMacBook-Air:temp xb$ java -jar xxl-job-admin-2.0.2.jar 

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.20.RELEASE)
 ...
 10:00:25.634 logback [main] INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8078 (http)
10:00:25.646 logback [main] INFO  c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 11.077 seconds (JVM running for 12.799)

Entonces visita la prueba:
Inserte la descripción de la imagen aquí

7: implementación del clúster de administración

Simplemente inicie varias instancias directamente y luego conecte nginx para que sea responsable del equilibrio complejo, pero preste atención 要共用一个mysql数据库.

Supongo que te gusta

Origin blog.csdn.net/wang0907/article/details/112093316
Recomendado
Clasificación