2 回答

TA貢獻1848條經(jīng)驗 獲得超2個贊
經(jīng)過一些研究和測試,我發(fā)現(xiàn)必須在請求查詢上設(shè)置超時。
所以在配置類上:
@Bean
public ReactiveRedisTemplate<String, String> reactiveRedisTemplateString
(ReactiveRedisConnectionFactory connectionFactory) {
return new ReactiveRedisTemplate<>
(connectionFactory, RedisSerializationContext.string());
}
并在服務(wù)中:
@Autowired
private ReactiveRedisTemplate<String, Response> repository;
public Mono<String> execute(String value){
return repository.opsForHash().entries("KEY_TO_SEARCH")
.timeout(Duration.ofMillis(TIMEOUT))
.collect(Collectors.toMap("CODE_HERE");
編輯:感謝所有在這里提供幫助的人。

TA貢獻1796條經(jīng)驗 獲得超10個贊
可以在反應(yīng)式連接實現(xiàn)上配置超時。如果您使用 Lettuce 進行 Redis 連接,則可以執(zhí)行以下操作。
@Bean
public ReactiveRedisConnectionFactory reactiveRedisConnectionFactory() {
return new LettuceConnectionFactory(new RedisStandaloneConfiguration(), LettuceClientConfiguration.builder().commandTimeout(Duration.ofSeconds(2)).build());
}
然后使用connectionFactory來創(chuàng)建ReactiveRedisTemplate.
@Bean
public ReactiveRedisTemplate<String, String> reactiveRedisTemplateString
(ReactiveRedisConnectionFactory connectionFactory) {
return new ReactiveRedisTemplate<>(connectionFactory, RedisSerializationContext.string());
}
添加回答
舉報