定时器扫描修改时锁表问题

来源:互联网 发布:淘宝系统排查时间 编辑:程序博客网 时间:2024/06/15 23:50

这次工作中碰到的问题,记录一下

用的mybatis

情景1.:

定时器扫表,再处理并插入服务器数据库,但是结果报错,显示插入本地的数据库失败。

原因:有配置主从库,切换的时候造成锁表,插入不了服务器的数据库。



2.定时器5秒扫描一次表,发现is_sent=1(未发送)的记录,读取,状态改为2(处理中),进行发送并且插入服务器上的log表,成功改为0(已发送),失败catch改为3(失败)。

实际上执行了update  却无法修改 is_sent=2,也没有报错情况。


原因:问题出在定时器的方法是调用自一个service当中,而service又配置了事务,造成update没有提交回滚掉了

解决:从service移到定时器任务的方法中当中。


0 0
原创粉丝点击