有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    可以在反应式连接实现上配置超时。如果您使用莴苣进行Redis连接,则可以执行以下操作

    @Bean
    public ReactiveRedisConnectionFactory reactiveRedisConnectionFactory() {
        return new LettuceConnectionFactory(new RedisStandaloneConfiguration(), LettuceClientConfiguration.builder().commandTimeout(Duration.ofSeconds(2)).build());
    }
    

    然后使用connectionFactory创建ReactiveRedisTemplate

    @Bean
    public ReactiveRedisTemplate<String, String> reactiveRedisTemplateString
      (ReactiveRedisConnectionFactory connectionFactory) {
        return new ReactiveRedisTemplate<>(connectionFactory, RedisSerializationContext.string());
    }
    
  2. # 2 楼答案

    经过一些研究和测试,我发现必须在请求查询上设置超时

    因此,在config类上:

    @Bean
    public ReactiveRedisTemplate<String, String> reactiveRedisTemplateString
    (ReactiveRedisConnectionFactory connectionFactory) {
        return new ReactiveRedisTemplate<>
                  (connectionFactory, RedisSerializationContext.string());
    }
    

    在服务中:

    @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");
    

    编辑:感谢所有在这里帮忙的人