【发布时间】:2019-02-01 19:21:59
【问题描述】:
我有一个文档,其中包含一个字符串数组作为其属性之一。
有时会从两个线程对索引执行多个更新查询,并且可能会更新同一个文档。
例如给定一个文档,其中 my_array 的值为:
my_array = [1,2,3,4]
两个线程执行以下更新查询,该查询使用不同参数在索引上运行无痛脚本。
thread_0 -> my_item=3
thread_1 -> my_item=2
int index_of_my_item = ctx._source.my_array.indexOf(params.my_item);
if (-1 != index_of_my_item) {
ctx._source.my_array.remove(index_of_item);
}
执行线程安全吗?文档中的属性值为:
my_array = [1,4]
或者是否需要考虑竞争条件?
谢谢,
【问题讨论】:
标签: python elasticsearch concurrency