问题原由
最近使用 quartz 写了一个定时任务,这个定时任务主要是给会员增加类似积分的东西,并且要保存积分增加记录,每天凌晨4点钟执行,但是会有些时候会出现很多会员的积分并没有增加,查了一下日志,发现 Druid 抛出了 abandon connection, open stackTrace,查看了一下报错的代码行,是在保存积分增加记录的时候抛出的异常,而且是等了30分钟才抛出的,也就是说,4点开始执行,然后4点半就抛异常了,导致用户的积分没有增加。
表结构
-- 用户会员信息表
create table client_vip_user_info
(
id varchar(36) not null comment '主键'primary key,
user_id varchar(36) null comment '用户编号',
had_stays int default 0 not null comment '积分',
create_time datetime null comment '创建时间(成为会员的时间)',
update_time datetime null comment '更新时间',
deadline datetime null comment '本期截止时间',
min_vip_level varchar(36) null comment '会员最低等级',
source varchar(20) null comment '注册途径'
)comment '用户会员信息表';
-- 会员积分