定時任務分布式鎖的簡單實現 Redis

2021-08-09 21:22:59 字數 1698 閱讀 5092

create table `basejob_config` (  

`key_name` varchar(255) not null default '' comment '引數code',  

`key_value` varchar(255) default null comment '引數值',  

`schedule_pre_time` datetime default null comment '上一次計畫執行時間',  

`actual_pre_time` datetime default null comment '上一次實際執行時間',  

`state` tinyint(4) not null default '0' comment '狀態--1代表正在執行0代表等待執行',  

`create_time` datetime default null comment '建立時間',  

primary key (`key_name`)  

) engine

=innodb

default 

charset

=utf8

comment

='basejob配置表'

;  create table `basejob_config_record` (  

`id` bigint(20) not null auto_increment comment '主鍵',  

`key_name` varchar(255) default null comment '定時任務名稱',  

`trigger_time` datetime default null comment '定時任務計畫觸發時間',  

`start_time` datetime default null comment '定時任務開始時間',  

`end_time` datetime default null comment '定時任務結束時間',  

`cost_time` bigint(20) default null comment '耗時',  

`ip` varchar(50) default null comment '執行伺服器ip',  

`create_time` datetime default null comment '建立時間',  

primary key (`id`),  

key `idx_basejob_config_record_key_name` (`key_name`) using btree,  

key `idx_basejob_config_record_trigger_time` (`trigger_time`) using btree,  

key `idx_basejob_config_record_start_time` (`start_time`) using btree,  

key `idx_basejob_config_record_end_time` (`end_time`) using btree,  

key `idx_basejob_config_record_create_time` (`create_time`) using btree  

) engine

=innodb

default 

charset

=utf8

comment

='定時任務執行記錄表'

;  

分布式定時任務

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

分布式定時任務元件對比

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

分布式鎖簡單實現

基於zookeeper的實現方式 基於redis的實現方式 基於資料庫實現分布式鎖 基於快取,實現分布式鎖,如redis 基於zookeeper實現分布式鎖 樂觀鎖機制其實就是在資料庫表中引入乙個版本號 version 欄位來實現的。當我們要從資料庫中讀取資料的時候,同時把這個version欄位也讀...