Laravel 5.4,Scout& Algolia模型更新缓慢

时间:2017-09-05 15:48:36

标签: laravel-5.4 algolia laravel-scout

我使用Scout + Algolia在我的Laravel应用程序中搜索表格。我唯一的关键点是删除模型。我的理解是,当一个模型被删除时,scout将更新algolia,然后更新我的索引。一旦模型被删除,我会重定向回到我的搜索路线,但路线要求我硬刷新以查看我的搜索列表的任何更新。

有关问题的任何想法?

由于

1 个答案:

答案 0 :(得分:3)

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

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

索引操作是异步的,因为添加数据会触发繁重的计算并花费几秒钟。 此外,Algolia始终优先考虑搜索电话。这意味着如果您的应用程序发送了大量搜索查询,则更新将被延迟,直到服务器可以处理它。

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