記一次xxljob異常排查

2021-10-08 17:02:37 字數 1998 閱讀 8004

我們使用開源的xxljob封裝了乙個job服務作為平台的job元件。有乙個專案組生產上總是隔些天就會有一次異常發生,排程失敗,且沒什麼報錯資訊。jobadmin、執行器服務都是三颱伺服器集群部署,且資料庫是三颱集群讀寫分離部署。

後排查發現如下:

失敗的那次任務時間點上排程時,執行器服務列表是空的,導致排程失敗。但那個時間點執行器服務也有註冊成功的日誌。

再排查發現jobadmin中對應有註冊清空資訊,對應執行器的ip隔會就會被置為空,且三颱jobadmin集群日誌中都頻繁出現。

而後面正常執行的那天的日誌中都沒有置空日誌出現。

xxljob此處有乙個心跳檢測監控:jobregistrymonitorhelper,

public class jobregistrymonitorhelper 

private thread registrythread;

private volatile boolean tostop = false;

public void start()

if (!registrylist.contains(item.getregistryvalue())) }}

}// fresh group address

for (adminqrtztriggergroup group: grouplist)

group.setaddresslist(addressliststr);

xxljobdynamicscheduler.xxljobgroupdao.update(group); }}

} catch (exception e) ", e);

}try catch (interruptedexception e) ", e);}}

}});

registrythread.setdaemon(true);

registrythread.start();

} public void tostop() catch (interruptedexception e)

}}

每隔三秒跑一次。執行器服務心跳註冊時,註冊進admin_qrtz_trigger_registry表,jobadmin註冊資訊檢測再更新到執行器組表admin_qrtz_trigger_group。如下sql。正常應該是30秒註冊一次,超過90秒沒有更新註冊的剔除,也就是超過三次註冊失敗的。但改造時sql超時時間處理除了3,變成了超過30秒沒有更新註冊,一次失敗就給剔除了。再加上sql集群伺服器時間不一致相差比較大,註冊資訊寫入時是寫庫的時間,讀的時候是讀庫的時間,sql時間判斷上異常概率便提公升了。

1、"delete from admin_qrtz_trigger_registry where update_time < date_add(sysdate(), interval (?/ -3) second)","success":"true","parameters":"[90]"}

2、select t.id, t.registry_group, t.registry_key, t.registry_value, t.update_time from admin_qrtz_trigger_registry t where update_time > date_add(sysdate(), interval (?/ -3) second)","success":"true","parameters":"[90]"}

3、update admin_qrtz_trigger_group

title = #,

order_code = #,

address_type = #,

address_list = #

where id = #

記一次ActiveMQ的異常排查

做乙個小專案時,選擇使用 activemq 作為中介軟體,負責專案內各元件的通訊。剛部署時,整個專案執行正常。執行 n 天後,發現 activemq 出乎意料地自動重啟,進而導致佇列中未來得及消費的資料丟失。剛開始,以為是配置檔案 activemq.xml 的問題,但是仔細核查後,發現沒有什麼明顯的...

記一次線上問題排查

這次線上問題來的比較突然,影響也大,用部落格記錄下整個過程,也當作是對這次事故的一次總結歸納。day1 2018年06月21號上午10點,收到運營同事通知,http com api 訪問量劇增,日誌量達到80g 天,而且有上公升趨勢。運營同事讓我們排查,這種訪問是否正常。運營統計訪問量 收到通知後立...

記一次前端bug排查

前言 時隔三年,終於記得要找回賬號密碼開始寫筆記了,這周剛加入了乙個後台管理系統專案,測試反饋系統重新整理時經常會直接登出,嚴詞要求解決這個 重大 bug,so尷尬。更嚴重的是發現系統在ie上直接登不進去,嬸可忍叔不可忍,於是我開啟了苦逼的尋bug之路。既然是登出了,當然會有登出請求,chrome重...