我们有一个Laravel 5.2作业队列,由于此错误,经常会失败作业:
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
我们有多个工作人员访问作业表,因为有些工作非常繁重。关于这个问题,我在SO上看过类似的帖子,但我还没有看到一个很好的实际解决方案。
是否有一种有效的方法可以避免使用Laravel作业表进行死锁?
答案 0 :(得分:0)
我也有这个问题。我把有问题的查询放在一个函数中,并在调用函数时包装了一个try catch。我在try和catch块中调用了该函数。因此,如果存在锁定并抛出异常,则catch块将重试查询。