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