работали и все круто было. Все по стандартному.
Нагуглил и вроде как много обращений или типо того. Почему такое случилос в стандартном пакете лары?
Сама ошибка:
Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction (SQL: select * from jobs where queue = default and ((reserved_at is null and available_at <= 1614152091) or (reserved_at <= 1614152001)) order by id asc limit 1 for update)
Какая база данных у тебя?
Mysql
Точно? А какая версия?
Точно. 5.8
Я не уверен именно так ли это, так как сильно в этом не разбирался, но вроде в той версии нет возможности сделать блокировки строчки в базе lock for update и из-за этого случаются этого дедлоки. И решением может быть обновление до восьмой версии где эта возможность есть либо же переключить драйвер например на редис
https://github.com/laravel/framework/issues/7046 вот здесь можешь глянуть почему такое случилос в стандартном пакете лары. В кратце дб не очень хороший драйвер для очередей, лучше редис
Спасибо, но почему мускул не может принять до 5 очередей?) Как же он тогда обрабатывает под 2млн записей?)
Так я же тебе ответил, что там нет возможности скипануть залоченые строчки в базе
Обсуждают сегодня