Обновление модели Laravel 5.4, Scout & Algolia медленно

Я использую Scout + Algolia для поиска по таблице в моем приложении Laravel. Единственный камень преткновения, который я имею, - это удаление модели. Насколько я понимаю, когда модель удаляется, скаут обновит Алголию, а затем обновит мои индексы. Как только модель удалена, я перенаправляю обратно на маршрут, по которому выполняется поиск, но маршрут требует от меня полного обновления, чтобы увидеть любые обновления в моем списке поиска.

Любые мысли о том, что проблема может быть?

Спасибо

1 ответ

Я думаю, что проблема в состоянии гонки, а не в кеше.

Когда вы делаете $model->delete() событие будет отправлено для обновления Algolia, но операции индексации Algolia выполняются асинхронно. Таким образом, страница, вероятно, отображается до того, как удаление действительно произошло.

Операции индексирования являются асинхронными, потому что добавление данных может вызвать тяжелые вычисления и занять несколько секунд. Плюс, Алголия всегда отдает приоритет поисковым звонкам. Это означает, что если ваше приложение отправляет много поисковых запросов, обновление будет отложено до тех пор, пока сервер не сможет его обработать.

Algolia возвращает идентификатор задачи для этого вида операции, чтобы вы могли использовать ее, чтобы увидеть, выполняется ли операция. Laravel не возвращает его по умолчанию, поэтому он потребует некоторых изменений.

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