由于我们使用PHP而不是现代Web语言,因此在CRUD操作后索引单个项目时,我们经常会达到超时限制。这是因为在将数据保存到MySQL所需的时间之外,它还必须等待Elasticsearch索引的更新。
问题主要在于我们使用elasticsearch索引 lot 数据,以减轻MySQL的负担,而不能代表数据的结构没有大量处理的商店(分层数据)。
因此,当我们在CRUD操作后向Elasticsearch投放数据时,我们抛出的内容远远超过更新的单个记录;相关记录也会更新。
这需要时间并且PHP会因为我们无法在PHP中分叉而崩溃。我们在这个时刻唯一的选择似乎就是使用像beanstalk这样的东西来索引它"当我们接触到它时,我觉得像Elasticsearch这样的RESTful API,我们应该能够要求它为某些数据建立索引,返回201 Accepted
,然后在完成后再ping我们的API。
我无法看到这样做的任何方式,甚至只是告诉Elasticsearch立即返回并让我们假设它没问题。
队列系统是我唯一的追索权吗?欢迎提示。