xxl-job使用踩坑記錄

這幾天公司要求使用spring cloud,定時任務(wù)避免不了進行分布式部署。考慮過自己開發(fā)。工作量大不說,系統(tǒng)完整性也達不到商用的要求。在網(wǎng)上找了很多開源框架。發(fā)現(xiàn)了xxl-job。下面記錄安裝過程及遇到的問題。

xxl-job安裝

我直接使用docker鏡像安裝的,一個字:快。下面說簡單記錄下安裝步驟(官方文檔上都有):

1. docker pull xuxueli/xxl-job-admin:2.2.0? (記住帶上tar號,小坑)

2. docker-compse文件 `內(nèi)聯(lián)代碼片`。

```yml

version: '2'

services:

? job:

? ? image: xuxueli/xxl-job-admin:2.2.0

? ? restart: always

? ? environment:

? ? ? SPRING_DATASOURCE_URL: "jdbc:mysql://10.0.2.93:3308/xxl_job?useUnicode=true&characterEncoding=utf-8&useSSL=false"

? ? ? SPRING_DATASOURCE_USERNAME: "xxxx"

? ? ? SPRING_DATASOURCE_PASSWORD: "xxxxxx"

? ? ? SPRING_DATASOURCE_driver-class-name: "com.mysql.jdbc.Driver"

? ? volumes:

? ? ? - "./tmp:/data/applogs"

? ? ? - "/etc/timezone:/etc/timezone:ro"

? ? ? - "/etc/localtime:/etc/localtime:ro"

? ? ports:

? ? ? - "8080:8080"

```

3、在配置的數(shù)據(jù)庫上運行SQL腳本

```sql

CREATE TABLE `xxl_job_info` (

? `id` int(11) NOT NULL AUTO_INCREMENT,

? `job_group` int(11) NOT NULL COMMENT '執(zhí)行器主鍵ID',

? `job_cron` varchar(128) NOT NULL COMMENT '任務(wù)執(zhí)行CRON',

? `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 '報警郵件',

? `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í)行超時時間,單位秒',

? `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更新時間',

? `child_jobid` varchar(255) DEFAULT NULL COMMENT '子任務(wù)ID,多個逗號分隔',

? `trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '調(diào)度狀態(tài):0-停止,1-運行',

? `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次調(diào)度時間',

? `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次調(diào)度時間',

? 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)度-時間',

? `trigger_code` int(11) NOT NULL COMMENT '調(diào)度-結(jié)果',

? `trigger_msg` text COMMENT '調(diào)度-日志',

? `handle_time` datetime DEFAULT NULL COMMENT '執(zhí)行-時間',

? `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-默認、1-無需告警、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)度-時間',

? `running_count` int(11) NOT NULL DEFAULT '0' COMMENT '運行中-日志數(shù)量',

? `suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '執(zhí)行成功-日志數(shù)量',

? `fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '執(zhí)行失敗-日志數(shù)量',

? 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=自動注冊、1=手動錄入',

? `address_list` varchar(512) DEFAULT NULL COMMENT '執(zhí)行器地址列表,多地址逗號分隔',

? 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 '賬號',

? `password` varchar(50) NOT NULL COMMENT '密碼',

? `role` tinyint(4) NOT NULL COMMENT '角色:0-普通用戶、1-管理員',

? `permission` varchar(255) DEFAULT NULL COMMENT '權(quán)限:執(zhí)行器ID列表,多個逗號分割',

? 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`) VALUES (1, 'xxl-job-executor-sample', '示例執(zhí)行器', 0, NULL);

INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_cron`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `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, '0 0 0 * * ? *', '測試任務(wù)1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', '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');

```

4. docker-compose up -d 運行鏡像。

到此xxl-job的安裝就結(jié)束了。界面訪問IP:8080/xxl-job-admin

賬戶、密碼:admin/123456 (安裝的時候直接蒙對了。官方文檔里也有)

## 遇到的問題

### 1. 服務(wù)都正常了,可是rpc服務(wù)調(diào)用一直報錯。

```

任務(wù)觸發(fā)類型:手動觸發(fā)

調(diào)度機器:192.168.0.2

執(zhí)行器-注冊方式:自動注冊

執(zhí)行器-地址列表:[10.0.3.106:8081]

路由策略:第一個

阻塞處理策略:單機串行

任務(wù)超時時間:50

失敗重試次數(shù):0

>>>>>>>>>>>觸發(fā)調(diào)度<<<<<<<<<<<

觸發(fā)調(diào)度:

address:10.0.3.106:8081

code:500

msg:xxl-rpc remoting error(no protocol: 10.0.3.106:8081/run), for url : 10.0.3.106:8081/run

```

檢測的1天。。。啥都檢測了,可是就是看不出問題。執(zhí)行器一切正常。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,480評論 2 379