Laravel作业使用多个队列守护进程排队死锁

时间:2016-01-27 01:05:23

标签: php mysql laravel queue database-deadlocks

我们有一个Laravel 5.2作业队列,由于此错误,经常会失败作业:

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction

我们有多个工作人员访问作业表,因为有些工作非常繁重。关于这个问题,我在SO上看过类似的帖子,但我还没有看到一个很好的实际解决方案。

是否有一种有效的方法可以避免使用Laravel作业表进行死锁?

1 个答案:

答案 0 :(得分:0)

我也有这个问题。我把有问题的查询放在一个函数中,并在调用函数时包装了一个try catch。我在try和catch块中调用了该函数。因此,如果存在锁定并抛出异常,则catch块将重试查询。