Laravel Supervisord 数据库死锁

Laravel Supervisord DB Deadlock

使用 Laravel 和 Supervisord 来保持 php artisan queue:listen 运行ning。由于某种原因,它 运行 很长一段时间都很好,现在突然出现这个错误,然后作业重新启动

[2016-02-19 14:49:23] production.ERROR: exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction (SQL: updateaccountssetupdated_at= 2016-02-19 14:49:23,ReceivableBalance= 11968.1419330000,RecoupableIncomeTotal= 0,RecoupableExpenseTotal= 0 whereid= 74)' in /home/ec2-user/MPWLaravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php:555

...

我读了一些东西说我正在获得一个 dealock,因为有太多的队列工作者运行宁,但我应该只有一个。

当我 运行、ps aux | grep artisan 我得到...

c2-user 12838 0.2 0.6 348288 26200 ? S 19:42 0:01 php artisan queue:listen --timeout=600 ec2-user 12920 76.3 2.0 484132 78212 ? R 19:49 3:47 php artisan queue:work --queue=https://sqs.us-east-1.amazonaws.com/129423672202/MpwNewProduction --delay=0 --memory=128 --sleep=3 --tries=0 --env=production

这表明两个队列工作者 运行ning?哪些可能导致死锁?还是只有 运行ning 和 queue:listen 还在检查新消息?

迷路了。

最终成为第二个队列侦听器 运行 我不知道。对于可能偶然发现类似问题的任何人。