小编sim*_*ood的帖子

Elasticsearch 429 Too Many Requests _bulk 带有同步请求

我正在使用 AWS Elasticsearch 服务。在开发环境中有 t3.small 实例。我有大约 15,000 条记录,我想将它们作为批量索引。我所做的是将这笔金额分成每个 250 个项目的块(或小于 10 MiB)。并使用刷新 =“wait_for”选项逐一运行 _bulk 请求,并等待请求完成后再发送下一个请求。在某个时刻,大约在第 25 次迭代时,请求立即失败并显示消息

429 Too Many Requests /_bulk
Run Code Online (Sandbox Code Playgroud)

以防万一,如果块大小为 500,这将在 25/2 请求(大约 12)上失败

它没有告诉更多的事情。仅此而已,我无法理解如果没有其他任何东西可以与我并行发送批量请求,为什么会发生这种情况。我检查了数据大小小于10MB。

我已经拥有的

  1. 我一致地发送每个请求,等待上一个请求
  2. 批量请求大小小于 10MiB
  3. 每个批量请求包含的记录不超过 250 条(+ 250 表示这是索引)
  4. 我正在使用刷新=“wait_for”
  5. 甚至在发送新请求之前有 2 秒的延迟(我强烈想删除)
  6. 添加新实例或增加存储空间根本没有帮助

出现该错误的原因可能是什么?如果我一致发送所有内容,如何保证我的请求不会失败?我可以通过任何其他选项来确保批量请求完全完成吗?

amazon-web-services node.js elasticsearch

10
推荐指数
1
解决办法
3万
查看次数

有角。为什么调用markForCheck()结果来查看更新

到处都说 markForCheck 只是将当前组件视图和所有父组件(直到根组件)标记为脏组件。因此下次执行 DetectChanges 时它将更新视图。从这一点上我有两个问题。两者都在该组件具有的上下文中changeDetection: ChangeDetectionStrategy.OnPush

1)如果“async pipeline”除了调用markForCheck(源代码)什么都不做,为什么视图会更新?

2)如果我尝试在某个异步进程中调用markForCheck,视图也会更新。

演示:stackblitz

您能帮助我了解这些过程中发生的情况以及视图实际更新的原因吗?我期待有人在 1) 和 2) 之后调用 DetectChanges 方法,但是谁......

angular angular-changedetection

6
推荐指数
1
解决办法
3904
查看次数