这次工作中碰到的问题,记录一下
用的mybatis
情景1.:
定时器扫表,再处理并插入服务器数据库,但是结果报错,显示插入本地的数据库失败。
原因:有配置主从库,切换的时候造成锁表,插入不了服务器的数据库。
2.定时器5秒扫描一次表,发现is_sent=1(未发送)的记录,读取,状态改为2(处理中),进行发送并且插入服务器上的log表,成功改为0(已发送),失败catch改为3(失败)。
实际上执行了update 却无法修改 is_sent=2,也没有报错情况。
原因:问题出在定时器的方法是调用自一个service当中,而service又配置了事务,造成update没有提交回滚掉了
解决:从service移到定时器任务的方法中当中。