記一次 XxlRpcException:xxl-rpc request timeout at 超時問題

来源:https://www.cnblogs.com/xiao2shiqi/archive/2019/10/30/11763932.html

事件起因 昨天有同事找我到,說他搭建的 XXL JOB 任務調度系統不能工作了,調用總是出錯(服務端返回 500)希望我能幫忙處理一下,不過說實話我也沒有搭建過 XXL JOB 的經驗,但是既然同事請求了,就只能硬著頭皮幫忙一起看下,解決的過程還算比較順利,但是發現網上這塊的資料很少,所以打算把解決 ...


事件起因

昨天有同事找我到,說他搭建的 XXL-JOB 任務調度系統不能工作了,調用總是出錯(服務端返回 500)希望我能幫忙處理一下,不過說實話我也沒有搭建過 XXL-JOB 的經驗,但是既然同事請求了,就只能硬著頭皮幫忙一起看下,解決的過程還算比較順利,但是發現網上這塊的資料很少,所以打算把解決過程用博客記錄下來,希望可以幫助到遇到同樣問題的同學們

解決過程

同事跟我說起初懷疑是 Shiro 攔截了定時任務的請求,但是他註釋了 Shiro 相關的代碼後,XXL-JOB 的請求還是無法成功(請求成功一次後,再次請求就出現標題的超時錯誤),然後我查看了 XXL-JOB 的請求日誌,服務端的 HTTP 返回碼是 500,錯誤日誌是 XxlRpcException: xxl-rpc, request timeout at ,基本排除了是 Shiro 認證導致的問題,原因是因為 Shiro 是認證框架,認證不通過的話,返回的錯誤碼應該是 401 Unauthorized 類的異常,但是從 XXL-JOB 的日誌顯示這明顯是通信錯誤,難道是某個相關的服務被關了?

帶著這個疑問我去查了下 XXL-JOB 的文檔,項目要使用 XXL-JOB 的調用,就會引入的 xxl-job-core 包,xxl 客戶端項目就會在啟動時使用占用一個埠監聽並且消費 XXL-JOB 發過來的調用(我們設置的埠是 9999),我嘗試啟動項目後觀察埠占用情況,項目啟動後埠 9999 是正常啟用的,然後在我使用 XXL-JOB 手動執行啟動後(第一次請求是成功的),然後我再查看埠情況,發現 9999 埠就已經關閉了,所以問題在這裡已經被找到了, 客戶端項目的 xxl 監聽埠被關閉,導致後續 XXL-JOB 請求都無法響應,自然也就請求超時,但是這明顯不像是程式問題,因為以前沒出現過。近期才開始出現。於是我通過搜索引擎找到了 xxl-job 官方在 github 的 Issue https://github.com/xuxueli/xxl-job/issues/586 ,通過 issue 的內容看到官方已經告知是版本的 BUG,並且在新版中這個 BUG 已經修複,以下是我使用的版本信息

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.0.0</version>
</dependency>

並且我發現這個版本在 mvnrepository 也幾乎沒人用

file

我果斷的把客戶端的 xxl-job-core 升級到官方推薦的最新版,代碼如下:

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.0.0</version>
</dependency>

然後啟動項目,在 XXL-JOB 手動執行任務,查看埠情況,問題解決。。
更多技術咨詢,請關註公眾號,find me !
alt 微信公眾號


您的分享是我們最大的動力!

更多相關文章
  • 項目中要用到RabbitMQ,領導讓我先瞭解一下。在之前的公司中,用到過消息隊列MQ,阿裡的那款RocketMQ,當時公司也做了簡單的技術分享,自己也看了一些博客。自己在有道雲筆記上,做了一些整理,但後來也就擱在那了。現在有時間,就對MQ的一些簡單的概念做下整理吧。 RabbitMQ的一些介紹,請參 ...
  • 2019杭州雲棲大會上,高德地圖技術團隊向與會者分享了包括視覺與機器智能、路線規劃、場景化/精細化定位時空數據應用、億級流量架構演進等多個出行技術領域的熱門話題。現場火爆,聽眾反響強烈。我們把其中的優秀演講內容整理成文並陸續發佈出來,本文為其中一篇。 阿裡巴巴資深技術專家孫蔚在高德技術專場做了題為《 ...
  • 1.代碼生成器: [正反雙向](單表、主表、明細表、樹形表,快速開發利器)freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本、處理類、service等完整模塊2.多數據源:(支持同時連接無數個資料庫,可以不同的模塊連接不同數的據庫)支持N個數據源3.阿裡資料庫連 ...
  • 鏈棧的定義: 棧的鏈式存儲結構稱為鏈棧,它是運算受限的單鏈表, 插入和刪除操作僅限制在表頭位置上進行。棧頂指針就是鏈 表的頭指針 ...
  • 前段時間公司根據要求需要將聚石塔上伺服器從杭州整體遷移到張家口,剛好趁這次機會將這些亂七八糟的伺服器做一次梳理和整合,斷斷續續一個月遷移完 成大概優化掉了1/3的機器,完成之後遇到了一些問題,比如曾今零零散散部署在生產上一些可視化UI:apollo,kibana,grafana,jenkins 等等 ...
一周排行
  • static void Main(string[] args) { string url = "https://go.microsoft.com/fwlink/?linkid=2108895&amp;clcid=0x409"; DownloadBigFile(new Uri(url), "ssms.... ...
  • 1. 使用ASP.NET Core 3.x 構建 RESTful API - 1.準備工作 什麼是REST 什麼是REST REST一詞最早是在2000年,由Roy Fielding在他的博士論文《Architectural Styles and the Design of Network-base ...
  • wpf 兩個自定義控制項 一個是IP控制項,一個滑動條。先看下效果圖 IPControl 1、實際工作中有時需要設置IP信息,就想著做一個ip控制項。效果沒有window自帶的好,需要通過tab切換。但也能滿足使用。廢話不多說直接上代碼 IPControl.xaml IPControl.xaml.cs 2 ...
  • 近期和幾位做嵌入式開發的朋友閑聊過程中,一位朋友抱怨到:這C#太難用了,我想在N個窗體(或者是N個用戶組件之間)傳遞值都搞不定,非得要定義一個全局變數來存儲,然後用定時器來刷新值,太Low了。我急切的回答道:這很簡單,不就是委托的事嘛。那你來一個示例啊:朋友道。此為這篇博客的起因,所以此篇博客對於有 ...
  • 在面對對象編程中,類的三大特性分別為封裝,繼承,多態。其中多態的具體實現,依賴於三個方法,也就是虛方法,抽象類和介面。 多態的具體作用是什麼呢?或者說多態的存在有什麼意義呢?多態的存在有效的降低了程式的耦合度,在使用的時候,不僅可以表現大家都有的共性,還能在必要的時候突出一些特殊的的個性。 那麼如何 ...
  • [toc] 前言 在之前已經提到過,公用類庫Util已經開源,目的一是為了簡化開發的工作量,畢竟有些常規的功能類庫重覆率還是挺高的,二是為了一起探討學習軟體開發,用的人越多問題也就會越多,解決的問題越多功能也就越完善, 倉庫地址: "April.Util_github" , "April.Util_ ...
  • 【ASP.NET Core學習】在ASP.NET Core 種使用Entity Framework Core介紹,包括如何添加Entity Framwork Core,創建模型和遷移到資料庫,查詢數據,保存數據,使用事務,處理併發衝突 ...
  • 環境:MacOS 10.13 MAMAP Prophp 7.0.33 + xdebugVisual Studio Code前言我所理解的 POP Chain:利用魔術方法並巧妙構造特殊屬性調用一系列函數或類方法以執行某種敏感操作的調用堆棧反序列化常用魔法函數前言我所理解的 POP Chain:利用魔 ...
  • 當創建隊列jobs、監聽器或訂閱伺服器以推送到隊列中時,您可能會開始認為,一旦分派,隊列工作器決定如何處理您的邏輯就完全由您自己決定了。 嗯……並不是說你不能從作業內部與隊列工作器交互,但是通常情況下,哪怕你做了,也是沒必要的。 這個神奇的騷操作的出現是因為“InteractsWithQueue”這 ...
  • 在說正題之前先解釋一下交換機模式是個籠統的稱呼,它不是一個單獨的模式(包括了訂閱模式,路由模式和主題模式),交換機模式是一個比較常用的模式,主要是為了實現數據的同步。 首先,說一下訂閱模式,就和字面上的意思差不多主要就是一個生產者,多個消費者,同一個消息被多個消費者獲取,先看一下官網的圖示 整體執行 ...
x