【问题标题】:Does the Nest Client WriteAsync perform operations in order?Nest Client WriteAsync 是否按顺序执行操作?
【发布时间】:2017-10-19 17:12:33
【问题描述】:

我正在开发一个应用程序,我们使用 Elastic 来捕获有关如何通过系统处理数据的某些信息。这是一些伪代码,可以让您了解正在发生的事情。在这段代码中,“client”是一个写入 Elastic 的 Nest 客户端。

var notes = List<Note>
.
.
.
notes.AddNote("data read in")
client.UpdateAsync(notes)
.
.
.
notes.AddNote("successfully enriched");
client.UpdateAsync(notes)
.
.
.
notes.AddNote("data written out");
client.UpdateAsync(notes)

这个想法是我们可以随时提取文档以了解特定数据块发生了什么。

我想使用 UpdateAsync 来避免在 Elastic 上等待的处理时间受到任何影响。有谁知道 UpdateAsync 是否会按顺序运行这些请求?命令的顺序总是这样吗?

第一次发帖... {“数据读入”}

第二个帖子... {"数据读入","成功丰富"}

第三个帖子 {"数据读入","成功丰富","数据写出"}

我知道调用程序对我来说是异步的,但它在后台是异步的吗?还是 Elastic 会按顺序处理它们?

我主要担心的是第三个帖子不会是最后一个帖子,数据会丢失。

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    异步调用不是await'ed,这意味着调用可以在这里同时发生。如果调用是await'ed,那么它们将按照指定的顺序发生。

    我知道调用程序对我来说是异步的,但它在后台是异步的吗?还是 Elastic 会按顺序处理它们?

    客户端中的异步代码路径是异步的。某些元素不是异步的,例如使用 JSON.Net 的响应的反序列化,它没有异步反序列化实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多