python-ES即时刷新file system cache

Python011

python-ES即时刷新file system cache,第1张

概要

原理

解决

对于需要写入后实时查询的数据,可以通过手动 refresh 操作将 memory buffer 的数据立即写入到 File system cache 。当然,该解决方案的代价就是降低了ES的写性能。

源码提供的方法支持refresh参数,默认False,可传True,wait_for。

wait_for:只影响当前用户处理的请求,其他用户并发的操作并不影响;

true:影响所有用户正在处理的请求,会更新所有分片,效率最低;

false:更新数据之后不立刻刷新,在返回结果之后的某个时间点会自动刷新,也就是随机的;

实时性要求较高,牺牲效率满足。

应用场景,根据自己项目需求来。

转换time.time()函数返回的时间浮点数,来获取当前毫秒时间。

先importtime模块。getMS函数的返回值,就是一个长度为3的毫秒时间字符串,getTime函数将这个毫秒时间与小时分钟秒合并成一个用冒号(:)分割的时间字符串。

秒,毫秒,微秒相互之间都是10^3的关系,以上代码将时间转换成微秒代码,然后用1000去取余,就得到了当前时间的微秒值。这段代码得到的是int,请按自己需要转换成string。

使用sys.stdout.write方法输出内容,内容以'\r'结尾即可,打印进度示例代码如下:

import sys, time

for i in range(1, 101):

    sys.stdout.write('[' + str(i) + '%]' + '>' * i + '\r')  #打印内容到控制台,\r表示回到输出内容的最左边

    time.sleep(0.01)