在項目開發過程中,需要用到任務調度服務
進過選型後,選擇了XXL-JOB調度服務來進行項目的開發。
途中遇到了不少的小問題,網上答案都是複製粘貼的多,在這裏記錄一下以便自己回顧。
問題一:unknown code for readObject at 0x3c
網上統一的答案都是
原因就是執行器找的路徑是http://localhost:8080/xxl-job-admin/
但是我用的IDEA工具配置的調用中心訪問路徑是http://localhost:8080
只需要在IDEA得調度中心項目中將訪問路徑配置上:/xxl-job-admin
但我就是按照demo來的配置,demo都能運行的好好地,怎麼我的項目就出錯了???於是研究了一會兒,看我和demo唯一不同的就是maven引用的版本了。demo上的導入是這樣的
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
而我引用的是1.9.1,我用的時候最新迭代到2.0.2。用了比較新的版本後,終於可以註冊執行器成功了。
說明1.9和2.0版本有所修改並不兼容。
問題二:自己2B的一個問題,不知道你們有沒有遇到
如圖,我新建任務,一閃而過就消失了,看不到任務,查數據庫又有數據。
糾結了一會兒後才發現,原來工具直接分類查詢,默認查詢出第一個執行器的任務,該列表並不顯示所有任務。
問題三:任務調度失敗
網上也是統一答案,如下:
調度結果失敗
有以下幾種原因:
1、執行器註冊地址錯誤,
2、執行器項目沒啓動或者啓動失敗,
3、執行器註冊地址爲空
但都是不正確的,執行器啓動了,註冊也成功了,所以地址也不是空的。
然後和demo作對比,又發現XxlJobConfig。Demo中XxlJobConfig引用的對象是XxlJobSpringExecutor,而網上引用的是XxlJobExecutor。迭代過程中已經改變了一些代碼功能。
(其實每一個XXL-JOB版本都有它的demo,不需要完全看網上的教程了,因爲這個項目還在迭代更新中,太多的答案、教程都是舊代碼)