多进程导致mysql死锁问题

使用workerman作为rabbitmq的守护进程,开了10个消费进程。
代码中mysql用到事务处理,实际使用中发现会发生死锁问题 导致业务代码无法正常运行。应该是多个进程访问事务导致的。
我目前想到的解决方案:在处理代码之前用redis标记是否有进程在处理,如果有则不往下执行业务(并将当前任务重新推入mq比如3分钟后再执行)   处理完后解锁。
不知道正确的姿势是怎么样的?使用多进程是因为rabbitmq 消费进程在单进程情况下任务一多就会出现 Unacked现象(应该是进程阻塞住了 出现假死现象),不知道是不是任务太多消费进程来不及确认导致的,所以想测试下多进程能否解决这种情况,结果又出现了新的坑。
(随便吐槽下该论坛页面停留过长 不让发帖的BUG)
已邀请:

apud

赞同来自:

yepo - 85后IT男

赞同来自:

顶,我目前也是遇到这个问题。大神你有解决方法了吗

dignfei - 丹妮

赞同来自:

mysql太慢了,换成redis就解决了,简单

要回复问题请先登录注册