欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker部署XXL-JOB分布式任務(wù)調(diào)度中心的完整指南

 更新時(shí)間:2025年06月23日 09:31:42   作者:奧德瑞  
XXL-Job是一個(gè)開源的分布式任務(wù)調(diào)度中心,它提供了一個(gè)可視化的任務(wù)管理界面,可以方便地創(chuàng)建,編輯和監(jiān)控任務(wù),本文小編就來(lái)和大家詳細(xì)講講Docker如何部署XXL-JOB吧

一.部署步驟

拉取鏡像

docker pull mysql:latest
docker pull xuxueli/xxl-job-admin:2.4.0

創(chuàng)建網(wǎng)絡(luò)

docker network create my

運(yùn)行mysql命令

docker run --network my --name mysql -p 3306:3306 -v /Users/a123456/work/dockerVolumes/mysql/conf:/etc/mysql/my.cnf -v /Users/a123456/work/dockerVolumes/mysql/data:/var/lib/mysql -v /Users/a123456/work/dockerVolumes/mysql/log:/logs -e MYSQL_ROOT_PASSWORD=shmily1314 --restart=always -d mysql

執(zhí)行SQL腳本

CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;
use `xxl_job`;
 
SET NAMES utf8mb4;
 
CREATE TABLE `xxl_job_info` (
                                `id` int(11) NOT NULL AUTO_INCREMENT,
                                `job_group` int(11) NOT NULL COMMENT '執(zhí)行器主鍵ID',
                                `job_desc` varchar(255) NOT NULL,
                                `add_time` datetime DEFAULT NULL,
                                `update_time` datetime DEFAULT NULL,
                                `author` varchar(64) DEFAULT NULL COMMENT '作者',
                                `alarm_email` varchar(255) DEFAULT NULL COMMENT '報(bào)警郵件',
                                `schedule_type` varchar(50) NOT NULL DEFAULT 'NONE' COMMENT '調(diào)度類型',
                                `schedule_conf` varchar(128) DEFAULT NULL COMMENT '調(diào)度配置,值含義取決于調(diào)度類型',
                                `misfire_strategy` varchar(50) NOT NULL DEFAULT 'DO_NOTHING' COMMENT '調(diào)度過(guò)期策略',
                                `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '執(zhí)行器路由策略',
                                `executor_handler` varchar(255) DEFAULT NULL COMMENT '執(zhí)行器任務(wù)handler',
                                `executor_param` varchar(512) DEFAULT NULL COMMENT '執(zhí)行器任務(wù)參數(shù)',
                                `executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞處理策略',
                                `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任務(wù)執(zhí)行超時(shí)時(shí)間,單位秒',
                                `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失敗重試次數(shù)',
                                `glue_type` varchar(50) NOT NULL COMMENT 'GLUE類型',
                                `glue_source` mediumtext COMMENT 'GLUE源代碼',
                                `glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE備注',
                                `glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新時(shí)間',
                                `child_jobid` varchar(255) DEFAULT NULL COMMENT '子任務(wù)ID,多個(gè)逗號(hào)分隔',
                                `trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '調(diào)度狀態(tài):0-停止,1-運(yùn)行',
                                `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次調(diào)度時(shí)間',
                                `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次調(diào)度時(shí)間',
                                PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_log` (
                               `id` bigint(20) NOT NULL AUTO_INCREMENT,
                               `job_group` int(11) NOT NULL COMMENT '執(zhí)行器主鍵ID',
                               `job_id` int(11) NOT NULL COMMENT '任務(wù),主鍵ID',
                               `executor_address` varchar(255) DEFAULT NULL COMMENT '執(zhí)行器地址,本次執(zhí)行的地址',
                               `executor_handler` varchar(255) DEFAULT NULL COMMENT '執(zhí)行器任務(wù)handler',
                               `executor_param` varchar(512) DEFAULT NULL COMMENT '執(zhí)行器任務(wù)參數(shù)',
                               `executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '執(zhí)行器任務(wù)分片參數(shù),格式如 1/2',
                               `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失敗重試次數(shù)',
                               `trigger_time` datetime DEFAULT NULL COMMENT '調(diào)度-時(shí)間',
                               `trigger_code` int(11) NOT NULL COMMENT '調(diào)度-結(jié)果',
                               `trigger_msg` text COMMENT '調(diào)度-日志',
                               `handle_time` datetime DEFAULT NULL COMMENT '執(zhí)行-時(shí)間',
                               `handle_code` int(11) NOT NULL COMMENT '執(zhí)行-狀態(tài)',
                               `handle_msg` text COMMENT '執(zhí)行-日志',
                               `alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警狀態(tài):0-默認(rèn)、1-無(wú)需告警、2-告警成功、3-告警失敗',
                               PRIMARY KEY (`id`),
                               KEY `I_trigger_time` (`trigger_time`),
                               KEY `I_handle_code` (`handle_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_log_report` (
                                      `id` int(11) NOT NULL AUTO_INCREMENT,
                                      `trigger_day` datetime DEFAULT NULL COMMENT '調(diào)度-時(shí)間',
                                      `running_count` int(11) NOT NULL DEFAULT '0' COMMENT '運(yùn)行中-日志數(shù)量',
                                      `suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '執(zhí)行成功-日志數(shù)量',
                                      `fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '執(zhí)行失敗-日志數(shù)量',
                                      `update_time` datetime DEFAULT NULL,
                                      PRIMARY KEY (`id`),
                                      UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_logglue` (
                                   `id` int(11) NOT NULL AUTO_INCREMENT,
                                   `job_id` int(11) NOT NULL COMMENT '任務(wù),主鍵ID',
                                   `glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE類型',
                                   `glue_source` mediumtext COMMENT 'GLUE源代碼',
                                   `glue_remark` varchar(128) NOT NULL COMMENT 'GLUE備注',
                                   `add_time` datetime DEFAULT NULL,
                                   `update_time` datetime DEFAULT NULL,
                                   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_registry` (
                                    `id` int(11) NOT NULL AUTO_INCREMENT,
                                    `registry_group` varchar(50) NOT NULL,
                                    `registry_key` varchar(255) NOT NULL,
                                    `registry_value` varchar(255) NOT NULL,
                                    `update_time` datetime DEFAULT NULL,
                                    PRIMARY KEY (`id`),
                                    KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_group` (
                                 `id` int(11) NOT NULL AUTO_INCREMENT,
                                 `app_name` varchar(64) NOT NULL COMMENT '執(zhí)行器AppName',
                                 `title` varchar(12) NOT NULL COMMENT '執(zhí)行器名稱',
                                 `address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '執(zhí)行器地址類型:0=自動(dòng)注冊(cè)、1=手動(dòng)錄入',
                                 `address_list` text COMMENT '執(zhí)行器地址列表,多地址逗號(hào)分隔',
                                 `update_time` datetime DEFAULT NULL,
                                 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_user` (
                                `id` int(11) NOT NULL AUTO_INCREMENT,
                                `username` varchar(50) NOT NULL COMMENT '賬號(hào)',
                                `password` varchar(50) NOT NULL COMMENT '密碼',
                                `role` tinyint(4) NOT NULL COMMENT '角色:0-普通用戶、1-管理員',
                                `permission` varchar(255) DEFAULT NULL COMMENT '權(quán)限:執(zhí)行器ID列表,多個(gè)逗號(hào)分割',
                                PRIMARY KEY (`id`),
                                UNIQUE KEY `i_username` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
CREATE TABLE `xxl_job_lock` (
                                `lock_name` varchar(50) NOT NULL COMMENT '鎖名稱',
                                PRIMARY KEY (`lock_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (1, 'xxl-job-executor-sample', '示例執(zhí)行器', 0, NULL, '2018-11-03 22:21:31' );
INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '測(cè)試任務(wù)1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代碼初始化', '2018-11-03 22:21:31', '');
INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock');
 
commit;

運(yùn)行xxl-job的docker命令

提示:鏈接數(shù)據(jù)庫(kù)要用 mysql服務(wù)名訪問(wèn),否則網(wǎng)絡(luò)不通

docker run --network my -di \
-e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \ --spring.datasource.username=root --spring.datasource.password=shmily1314" \
-p 9001:8080 \
-v /Users/a123456/work/dockerVolumes/xxl-job:/data/applogs \
--privileged=true \
--name xxl-job-admin-2.4.0 xuxueli/xxl-job-admin:2.4.0

管理界面訪問(wèn)

http://localhost:9001/xxl-job-admin

用戶名admin

密碼123456

新建執(zhí)行器

新建任務(wù)

樣例配置每5秒執(zhí)行一次任務(wù)

二.應(yīng)用使用

引入xxljob依賴

   <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.5.0</version>
        </dependency>
    <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
            <scope>provided</scope>
        </dependency>

增加xxljob配置

#xxl-job
xxl:
  job:
    admin:
      addresses: http://localhost:9001/xxl-job-admin
    executor:
      appname: test01
      ip:
      port: 9010
      logpath: xxl-job/log
      logretentiondays: -1
    accessToken: default_token
 

新建XXLJOB Config配置類

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Slf4j
@Configuration
public class XxlJobConfig {
 
    @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
    public XxlJobSpringExecutor xxlJobExecutor() {
        log.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;
    }
 
}

新增handler處理業(yè)務(wù)類

定時(shí)任務(wù)觸發(fā)的邏輯,寫在里面

import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class TaskHandler {
 
    @XxlJob("test01Handler")
    public  void test01Handler() {
        log.info("xxl-job, hello world.");
    }
}

XXLJOB界面開啟定時(shí)任務(wù)

定時(shí)任務(wù)執(zhí)行

三.測(cè)試源碼

GitCode - 全球開發(fā)者的開源社區(qū),開源代碼托管平臺(tái)

四.xxljob配置發(fā)送預(yù)警郵件(擴(kuò)展)

開通QQ郵箱的SMTP發(fā)送郵件服務(wù),生成授權(quán)碼。 授權(quán)碼是作為spring.mail.password的值。不要寫QQ郵箱密碼,謹(jǐn)慎操作!

可以先刪除之前運(yùn)行的XXL-JOB的容器

docker rm 容器id

運(yùn)行XXL-JOB docker命令

啟動(dòng)命令添加郵件額外參數(shù)

docker run --network my -di \
-e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \ --spring.datasource.username=root --spring.datasource.password=shmily1314 spring.mail.host=smtp.qq.com
--spring.mail.port=25
--spring.mail.username=xx@qq.com
--spring.mail.from=xxx@qq.com
--spring.mail.password=xxxx
--spring.mail.properties.mail.smtp.auth=true
--spring.mail.properties.mail.smtp.starttls.enable=true
--spring.mail.properties.mail.smtp.starttls.required=true
--spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory" \
-p 9001:8080 \
-v /Users/a123456/work/dockerVolumes/xxl-job:/data/applogs \
--privileged=true \
--name xxl-job-admin-2.4.0 xuxueli/xxl-job-admin:2.4.0

郵件預(yù)警截圖

以上就是Docker部署XXL-JOB分布式任務(wù)調(diào)度中心的完整指南的詳細(xì)內(nèi)容,更多關(guān)于Docker部署XXL-JOB的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Docker?部署?Nexus?Maven私服的詳細(xì)過(guò)程

    Docker?部署?Nexus?Maven私服的詳細(xì)過(guò)程

    Nexus?是一個(gè)強(qiáng)大的倉(cāng)庫(kù)管理器,廣泛用于管理和組織軟件構(gòu)建過(guò)程中的依賴項(xiàng)和構(gòu)件,通過(guò)?Docker?部署?Nexus?私服,可以簡(jiǎn)化安裝和管理過(guò)程,并提供更高的靈活性和可擴(kuò)展性,這篇文章主要介紹了Docker?部署?Nexus?Maven私服的詳細(xì)過(guò)程,需要的朋友可以參考下
    2024-08-08
  • docker快速安裝使用kibana流程

    docker快速安裝使用kibana流程

    這篇文章主要為大家介紹了docker快速安裝使用kibana詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Docker通過(guò)容器生成鏡像提交DockerCommit詳解

    Docker通過(guò)容器生成鏡像提交DockerCommit詳解

    這篇文章主要介紹了Docker通過(guò)容器生成鏡像提交DockerCommit的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-09-09
  • Docker安裝Jenkins-2.249.3-1.1的詳細(xì)過(guò)程

    Docker安裝Jenkins-2.249.3-1.1的詳細(xì)過(guò)程

    這篇文章主要介紹了Docker安裝Jenkins-2.249.3-1.1,通過(guò)編寫docke安裝腳本來(lái)實(shí)現(xiàn)安裝目的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

    手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

    這篇文章主要介紹了手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • docker測(cè)試時(shí)候命令無(wú)法補(bǔ)全的解決方法

    docker測(cè)試時(shí)候命令無(wú)法補(bǔ)全的解決方法

    因?yàn)樽罱趯W(xué)習(xí)使用Docker,所以出現(xiàn)了好多的問(wèn)題,昨天遇到的一個(gè)問(wèn)題是在docker測(cè)試時(shí)候發(fā)現(xiàn)命令無(wú)法補(bǔ)全,通過(guò)查找資料最后解決了,現(xiàn)在將方法分享給有需要的人,大家可以參考學(xué)習(xí)。
    2016-11-11
  • openwrt安裝docker并啟動(dòng)的操作方法

    openwrt安裝docker并啟動(dòng)的操作方法

    這篇文章主要介紹了openwrt安裝docker并啟動(dòng)的操作方法,首先需要大家在軟件包中下載docker和dockerd,然后在建立軟連接,在系統(tǒng)加載時(shí)啟動(dòng)docker服務(wù),感興趣的朋友一起看看吧
    2022-03-03
  • docker 多個(gè)-e參數(shù)的具體使用

    docker 多個(gè)-e參數(shù)的具體使用

    在使用Docker鏡像運(yùn)行容器時(shí),我們可以通過(guò)使用-e參數(shù)來(lái)設(shè)置環(huán)境變量,有時(shí)我們需要設(shè)置多個(gè)環(huán)境變量,這就涉及到如何實(shí)現(xiàn)多個(gè)-e參數(shù)的問(wèn)題,本文就來(lái)詳細(xì)的介紹一下
    2024-01-01
  • 深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    本文詳細(xì)介紹了Docker數(shù)據(jù)卷(DataVolume)的概念、作用、使用命令、掛載方式以及最佳實(shí)踐,數(shù)據(jù)卷是Docker中實(shí)現(xiàn)數(shù)據(jù)持久化和共享的關(guān)鍵機(jī)制之一,通過(guò)本文的學(xué)習(xí),讀者可以更好地掌握數(shù)據(jù)卷的使用方法,從而在容器化應(yīng)用中進(jìn)行有效的數(shù)據(jù)管理
    2024-11-11
  • Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問(wèn)題

    Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問(wèn)題

    這篇文章主要介紹了Docker環(huán)境搭建Jenkins在構(gòu)建任務(wù)時(shí)控制臺(tái)日志出現(xiàn)中文亂碼的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論