分布式定時任務需要考慮的問題

2022-10-09 12:09:09 字數 477 閱讀 5269

定時任務的多機分布會產生幾個需要解決的問題:

如果多台機器的時區不一致,那鎖基本上無從談起了。 或者時區一致,但可能伺服器時間相差幾秒鐘,那麼也有可能導致鎖丟失。

那麼如果servera在加鎖的過程中,出現宕機怎麼辦,是否會一直處於加鎖狀態

每個定時任務應該有不同的鎖命名,防止出現同名鎖。

可以使用例項的ip+埠做唯一key,這樣能夠保證多個例項的唯一性

通過中間媒介來確定時間。或者在伺服器中杜絕這個問題

僅僅是加了乙個同步鎖是遠遠不夠的

解決方案可以是根據業務的不同來設定不同的鎖超時時間,例如某個業務定時任務,每天只可以執行一次,那麼將超時時間設定為1個小時最保險,如果某個定時任務每分鐘執行,執行操作時間大約20s,那你可以將超時時間設定成30s。

另乙個解決方案是設定乙個統一的、中心級別的定時任務,任務負責派發訊息,通過訊息佇列的方式來做定時,這裡就不細表,這種方式比較適合異構、或者跨網路、跨機房級別的分布式。

分布式定時任務

在做springboot專案的時候,需要定時做對賬任務。但因為專案是集群部署,就存在多個pod例項的定時任務同時執行,存在重複性。怎麼保證集群中不重複地完成定時任務?下面給出本人總結的方案。對賬任務表 merchant idname is done 是否對賬,0沒有對賬 1商家102 商家20 3商...

redis解決分布式定時任務問題

場景分析 多伺服器針對於定時任務帶來的問題,保證任務只在乙個伺服器上在執行。解決方案1 redis bean public defaultredisscript redisscript scheduled cron 40 public void testscheduled else catch in...

分布式定時任務元件對比

描述xxl job elastic job lite saturn 主要作者 大眾點評徐雪裡 當當網張亮 唯品會開源,基於elastic job 特殊環境 mysql5.7 zookeeper 同elastic job 特殊功能 策略豐富,支援分片 子任務 支援分片,分片策略比xxl job豐富,支...