Nest Client WriteAsync是否按顺序执行操作?

时间:2017-10-19 04:07:12

标签: c# elasticsearch nest

我正在开发一个应用程序,我们使用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是否按顺序处理它们?

我主要担心的是,第三篇文章不会是最后一篇文章,数据也会丢失。

1 个答案:

答案 0 :(得分:0)

异步调用不是await,这意味着调用可以在此处同时发生。如果来电是await,那么他们将按照指定的顺序发生。

  

我知道这个调用对我来说是异步的调用程序,但它是不是异步引擎?或者Elastic是否按顺序处理它们?

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