青岛网站建设与管理,如何提高网站的收录量,搭建公司内部网站,在哪做网站定时任务表达式生成工具网站#xff1a;https://cron.qqe2.com/定时任务选型#xff1a;xxl-job 官方文档#xff1a;https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库#xff1a;地址#xff1a;https://gitee.com/xux…定时任务表达式生成工具网站https://cron.qqe2.com/定时任务选型xxl-job 官方文档https://www.xuxueli.com/xxl-job/安装定时任务调度中心 xxl-job-admin第一步、先导入xxl-job的数据库地址https://gitee.com/xuxueli0323/xxl-job/tree/master/doc/db修改数据库的用户名和密码并同时开启外部访问权限docker安装xxl-job-admin 步骤拉取镜像docker pull xuxueli/xxl-job-admin:2.3.1开放端口firewall-cmd --zonepublic --add-port8090/tcp --permanent运行镜像docker run -d \--name xxl-job-admin \-p 8090:8080 \-e JVM_XMS128m \-e JVM_XMX512m \xuxueli/xxl-job-admin:2.3.1创建配置挂载目录mkdir -p /docker/xxl-job/config/application.propertiesmkdir -p /docker/xxl-job/logs复制配置docker cp xxl-job-admin:/data/applogs/xxl-job /docker/xxl-job/logs删除运行中的镜像docker rm -f xxl-job-admin完整的运行镜像docker run -d \--name xxl-job-admin \-p 8090:8080 \-e JVM_XMS128m \-e JVM_XMX512m \-v /docker/xxl-job/config/application.properties:/application.properties \-v /docker/xxl-job/logs:/data/applogs \xuxueli/xxl-job-admin:2.3.1修改外部映射的配置文件application.properties中的数据源地址配置访问http://192.168.56.10:8090/xxl-job-admin默认账号密码admin、123456spring boot项目整合 xxl-job首先引入依赖!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core --
dependencygroupIdcom.xuxueli/groupIdartifactIdxxl-job-core/artifactIdversion2.3.1/version
/dependency
安装好xxl-job-admin 定时任务调度中心后在项目中配置 xxl-job 参数配置 xxl-job 参数用于创建执行器和连接调度中心参考如下Getter
Setter
public class XxlJobAdminProperties {private String address;
}Getter
Setter
public class XxlJobExecutorProperties {/*** 执行器AppName [选填]执行器心跳注册分组依据为空则关闭自动注册*/private String appname;/*** 服务注册地址,优先使用该配置作为注册地址 为空时使用内嵌服务 ”IP:PORT“ 作为注册地址 从而更灵活的支持容器类型执行器动态IP和动态映射端口问题*/private String address;/*** 执行器IP [选填]默认为空表示自动获取IP多网卡时可手动设置指定IP 该IP不会绑定Host仅作为通讯实用地址信息用于 执行器注册 和* 调度中心请求并触发任务*/private String ip;/*** 执行器端口号 [选填]小于等于0则自动获取默认端口为9099单机部署多个执行器时注意要配置不同执行器端口*/private Integer port 9099;/*** 执行器通讯TOKEN [必填]从配置文件中取不到值时使用默认值*/private String accessToken default_token;/*** 执行器运行日志文件存储磁盘路径 [选填] 需要对该路径拥有读写权限为空则使用默认路径*/private String logPath logs/applogs/xxl-job/jobhandler;/*** 执行器日志保存天数 [选填] 值大于3时生效启用执行器Log文件定期清理功能否则不生效*/private Integer logRetentionDays 30;}
Getter
Setter
Component
ConfigurationProperties(prefix xxl.job)
public class XxlJobProperties {NestedConfigurationPropertyprivate XxlJobAdminProperties admin;NestedConfigurationPropertyprivate XxlJobExecutorProperties executor;}xxl:job:admin:address: http://192.168.56.10:8090/xxl-job-adminexecutor:address:appname: xxl-job-executor-orderip:port: 9999log-path: /data/applogs/xxl-job/jobhandlerlog-retention-days: 30access-token: default_token特别提醒在配置文件中配置 xxl-job 参数时不要配置executor执行器的address 和 ip 这两个属性自己配置容易出问题使用默认的策略就好。配置自定义执行器Slf4j
Configuration
public class XxlJobConfig {Beanpublic XxlJobSpringExecutor xxlJobSpringExecutor(XxlJobProperties properties) {XxlJobSpringExecutor executor new XxlJobSpringExecutor();executor.setAdminAddresses(properties.getAdmin().getAddress());executor.setAddress(properties.getExecutor().getAddress());executor.setAppname(properties.getExecutor().getAppname());executor.setIp(properties.getExecutor().getIp());executor.setPort(properties.getExecutor().getPort());executor.setAccessToken(properties.getExecutor().getAccessToken());executor.setLogPath(properties.getExecutor().getLogPath());executor.setLogRetentionDays(properties.getExecutor().getLogRetentionDays());return executor;}XxlJob(xxlJobHandler)public void xxlJobHandler() {String jobParam XxlJobHelper.getJobParam();log.info(【xxlJobHandler】 定时任务开始执行参数为{}, jobParam);}}上面的配置类 XxlJobConfig 中注入的Bean就是自定义定时任务执行器执行器下方的方法如下 XxlJob(xxlJobHandler)public void xxlJobHandler() {String jobParam XxlJobHelper.getJobParam();log.info(【xxlJobHandler】 定时任务开始执行参数为{}, jobParam);}这个是一个调度任务XxlJob(xxlJobHandler) 注解就可以声明一个调度任务其中的值 xxlJobHandler 就是调度任务的名称以上步骤做完先不要启动项目还需要在xxl-job-admin 调度中心配置执行器和调度任务准备执行 xxlJobHandler 调度任务来到 xxl-job-admin 调度中心首先创建一个执行器参考如下其中 AppName 为执行器名称要和我们之前在配置文件中配置的执行器名称一致名称 可以随便写见名知意即可注册方式 选择自动注册选择自动注册后机器地址不用填。添加完执行器后再添加调度任务操作如下最后执行定时任务效果如下需要注意的是程序中调度任务在取调度中心的定时任务参数时需要通过 XxlJobHelper 对象获取例如String jobParam XxlJobHelper.getJobParam(); 不能直接使用方法参数接受。