elastic job的併發問題和處理

2021-09-19 13:22:09 字數 529 閱讀 2593

elasticjob資料要自己分片,如果多個分片執行同乙個任務要注意冪等性

舉乙個簡單的例子:

如果讓兩個分片執行同乙個任務:如先刪除後新增,很容易就出現有些類似不可重複讀的問題:會發現插入兩條資料

這是由於兩台機器同時觸發任務,造成的併發問題!!!

處理方式:

這裡當然可以用分片處理,但是有時候我們需要在某個分片任務完成後去調一次資料解析和處理

這裡就推薦分布式***(本地***,做好冪等,也可以用,但是不太好)

如果執行完畢後分片單獨處理

本地***

分布式***

這裡可以使用

/**

* 分布式環境中最後乙個作業執行後的執行的方法.

** @param shardingcontexts 分片上下文

*/public abstract void doafterjobexecutedatlastcompleted(shardingcontexts shardingcontexts);

參考

解決併發問題

一.使用redis鎖 智慧型雲 工單系統 搶單 工單id鎖key public static final string cloud live gain order lock orderid cloud live gain order lock orderid component public cla...

Connection併發問題

connection lock getconnection lock.setautocommit false lock.createstatement execute select from zhaojianyong for update final connection connection ge...

hive併發問題

hive 併發模型 使用案例 併發支援 是資料庫的必須,而且他們的使用案例很好懂。至少,我們要盡可能支援併發讀和寫。新增幾個發現當前已經鎖定的鎖,是有用的。這裡沒有乙個直接的需求新增乙個api顯式獲取鎖,所以,所有鎖都是隱式獲取的。hive定義一下模式的鎖 注意不需要意向鎖 共享 s 排他 x 見名...