2016-01-27 3 views
2

Мы имеем в Laravel очередь +5,2 задания, часто терпит неудачу работу из-за этой ошибки:Laravel заданий в очереди тупики с несколькими демонами очереди

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

Мы несколько рабочих, которые получают доступ к таблице рабочих мест, потому что некоторые из рабочих мест являются довольно тяжелый. Я видел подобные сообщения о SO по этой проблеме, но мне еще предстоит увидеть хорошее практическое решение.

Есть ли эффективный способ избежать взаимоблокировок с таблицей рабочих мест Laravel?

ответ

0

У меня была эта проблема. Я помещаю оскорбительный запрос в функцию и завершаю попытку catch при вызове функции. Я вызвал функцию как в блоке try, так и catch. поэтому, если есть блокировка, и генерируется исключение, блок catch будет повторять запрос.