问题
昨天遇到了一个问题,表现为:发了一次请求,结果循环处理了。。。
分析后发现整个流程是这样的:
- 发一次请求,在数据库存一条记录
- 定时任务从数据库取数据,进行处理,最后删除
问题就发生在删除时没有删除成功,导致定时任务一直取一直有数据一直处理
没有删除成功的原因是:查询时resultSet.getLong
精度丢失,导致主键和数据库不一致了,所以根据主键删除时失败
验证
在代码中增加日志:
查看日志:
解决
先getString
再parseLong
Long.parseLong(resultSet.getString("id"))