Laravel Queues и FirstOrNew

Я использую очередь Laravel для извлечения данных из API, когда меня уведомляют об изменениях через Webhooks. Webhook возвращает только идентификатор измененного объекта, поэтому мне нужно сделать запрос к API, чтобы получить остальное.

Я отправляю задание, чтобы получить объект по идентификатору, он работает в фоновом режиме (драйвер redis, супервизор). В очереди я использую:

Model::firstOrNew(['remote_id' => $id]);

но на ->save() Я получил:

SQLSTATE [23000]: Нарушение ограничения целостности: 1062 Повторяющаяся запись 'tag-12' для ключа 'types_type_remote_id_unique' (SQL: вставить в categories...

Если я отлаживаю этот код с помощью sync Драйвер Я не могу воспроизвести эту ошибку, она появляется только в фоновых заданиях. Как будто работа не может получить самые последние данные из БД и использует new часть firstOrNew вместо first

1 ответ

Проблема для mysql . Вы вводите повторяющуюся запись 'tag-12' и находите, какие ключи вы определили как уникальные. затем измените ваш метод firstOrNew

Другие вопросы по тегам