Я использую очередь Laravel для получения данных из API, когда меня уведомляют об изменениях через Webhooks.Webhook возвращает только идентификатор измененного объекта, поэтому мне нужно сделать запрос к API, чтобы получить остальное.
Я отправляю задание, чтобы получить объект по идентификатору, оно выполняется в фоновом режиме (драйвер redis, супервизор),В очереди я использую:
Model::firstOrNew(['remote_id' => $id]);
, но на ->save()
я получаю:
SQLSTATE [23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись 'tag-12 'для ключа' category_type_remote_id_unique '(SQL: вставить в categories
...
Если я отлаживаю этот код с помощью драйвера sync
, я не могу воспроизвести эту ошибку, она появляется тольков фоновых заданиях. Например, задание не может получить самые последние данные из БД и использует new
часть firstOrNew
вместо first