原因

在生产环境中, 发现数据库经常报死锁.排查问题后,发现是由于RabbitMQ监听器, 批量处理SQL: insert ... on duplicate key update ... 这类SQL引起.

解决

在添加到队列之前(或出队之后), 进行重处理再进行批量操作.(比如,通过Redis缓存进行唯一键去重).