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.2
liberar 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.sql
ejecució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.properties
archivo 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.java
iniciar 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/123456
se xxl-job-admin/src/main/resources/application.properties
configura en, después de iniciar sesión, como se muestra en la siguiente figura:
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-dongshidaddy
debe agregarlos manualmente en el fondo de xxl-job admin, de la siguiente manera:
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.TestDebugRemoteTomcatApplication
Comience 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:
al Edit Configurations
agregar 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:
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:
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:
6: Ejecutar como un paquete jar
Escriba el paquete jar de la siguiente manera:
preste atención a modificar el número de puerto aquí, no entre en conflicto con el anterior y luego simplemente java -jar
ejecute:
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:
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数据库
.