我有下面的代码从redis异步获取数据。默认情况下,库中的get()调用使用nio事件线程池。
代码1:
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisAsyncCommands<String, String> command = connection.async();
CompletionStage<String> result = command.get(id)
.thenAccept(code ->
logger.log(Level.INFO, "Thread Id " + Thread.currentThread().getName());
//Sample code to print thread ID
打印的线程id是莴苣-nioeventloop-6-2。
代码2:
CompletionStage<String> result = command.get(id)
.thenAcceptAsync(code -> {
logger.log(Level.INFO, "Thread Id " + Thread.currentThread().getName());
//my original code
}, executors);
打印的线程id是pool-1-thread-1。
我的问题:
有办法通过我的遗嘱执行人吗?
建议使用nio事件线程池(使用get()调用)从redis获取数据吗?
莴苣版本:5.2.2.release
谢谢,阿肖克
1条答案
按热度按时间xa9qqrwz1#
班级
io.lettuce.core.RedisClient
具有创建者方法:你可以建立你的
ClientResources
由ClientResources#builder()
,传递任何你想要的东西。参考javadoc,您可以自定义以下内容:eventloopgroupprovider以获取特定的eventloopgroups
执行内部计算任务的EventExecutor组
调度计时器
用于客户端事件调度的eventbus
事件发布选项
commandlatencycollector收集延迟详细信息。需要hdrhistogram库。
dnsresolver收集延迟详细信息。需要latencyutils库。
重新连接延迟。
跟踪到跟踪redis命令。