架構師成長記 第三週 07

2021-10-16 22:17:05 字數 1660 閱讀 6496

設定訂單超時

所以, 這樣的定時任務只是適用於小型輕量級專案, 傳統專案.

自動生成cron表示式鏈結工具

* 關閉超時未支付的訂單

*/public

void

closeorder()

;

@transactional

(propagation = propagation.required)

@override

public

void

closeorder()

}}@transactional

(propagation = propagation.required)

void

docloseorder

(string orderid)

使用如上的定時任務關閉超期未支付的訂單, 會存在的弊端

會有時間差, 會導致程式不嚴謹.

比如: 10:20 下單, 11:00 檢查不足一小時, 12:00 檢查, 超過了1小時多餘20分鐘

不支援集群

單機沒毛病, 使用集群後, 就會有多個定時任務

解決方案: 只使用一台計算機節點, 單獨用來執行所有的定時任務

最大的弊端

會對資料庫全表搜尋, 極其影響資料庫效能,

因為我們寫的是 select * from order where orderstatus = 10 ;

後續會涉及到訊息佇列 : mq -> rabbitmq, rocketmq, kafka, zeromq…

即啟動 延時任務(佇列)

架構師成長記 第二週 05

根據商品id查詢商品的評價等級數量 param itemid public commentlevelcountsvo querycommentcounts string itemid transactional propagation propagation.supports override pu...

架構師成長記 第四周 01

bean validation 中內建的 constraint null 被注釋的元素必須為 null notnull 被注釋的元素必須不為 null asserttrue 被注釋的元素必須為 true assertfalse 被注釋的元素必須為 false min value 被注釋的元素必須是乙...

架構師成長記 第一周 15

記錄開始時間 long begin system.currenttimemillis 執行目標service object result point.proceed 記錄結束時間 long end system.currenttimemillis long taketime end begin if...