0

我正在使用 Scout + Algolia 在我的 Laravel 应用程序中搜索表格。我唯一的症结是删除模型时。我的理解是,当删除模型时,侦察员将更新 algolia,然后依次更新我的索引。删除模型后,我将重定向回包含我的搜索的路线,但该路线需要我硬刷新才能查看对我的搜索列表的任何更新。

有什么想法可能是什么问题?

谢谢

4

1 回答 1

3

我认为问题是竞争条件,而不是缓存问题。

当您执行$model->delete()此操作时,将分派事件以更新 Algolia,但 Algolia 的索引操作是异步的。所以页面可能在删除实际发生之前显示。

索引操作是异步的,因为添加数据会触发繁重的计算并需要几秒钟。另外,Algolia 总是优先考虑搜索调用。这意味着如果您的应用程序发送大量搜索查询,则更新将延迟到服务器可以处理为止。

Algolia 会为此类操作返回一个 taskID,因此您可以使用它来查看该操作是否已执行。Laravel 默认不返回它,因此需要进行一些修改。

于 2017-09-05T16:22:44.270 回答