2017-10-02 5 views
0

J'utilise le client Feindre avec désactivé Load BalancerImpossible de configurer les délais d'attente Feindre client

@FeignClient(name = "my-client", url = "${myHost}", configuration = ClientContext.class) 

Ainsi, toutes les propriétés du ruban sont ignorés. J'essaie de définir des délais d'expiration personnalisés de différentes manières, mais Feign les ignore tous et lance TimeoutException après 60 secondes. façons j'essayé d'utiliser: à ClientContext: 1)

@Value("${feign.connectTimeout:10000}") 
private int connectTimeout; 

@Value("${feign.readTimeOut:300000}") 
private int readTimeout; 

@Bean 
public Request.Options options() { 
    return new Request.Options(connectTimeout, readTimeout); 
} 

2)

@Bean 
public Request.Options options() { 
    return new Request.Options(10_000, 300_000); 
} 

dans le fichier de bootstrap.properties: 1)

feign.client.default.connect-timeout=10000 
feign.client.default.read-timeout=300000 

2)

feign.client.default.config.connect-timeout=10000 
feign.client.default.config.read-timeout=300000 

3)

feign.client.default.connectTimeout=10000 
feign.client.default.readTimeout=300000 

4)

trace
feign.client.default.config.connectTimeout=10000 
feign.client.default.config.readTimeout=300000 

pile d'erreurs est:

Error Message: feign.RetryableException: Read timed out executing GET http://myrequest... 
Stacktrace: 
feign.FeignException.errorExecuting(FeignException.java:67) 
feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:10) 
feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76) 
feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) 

Pouvez-vous me suggérer bonne configuration ou trouvé ce qui est faux dans les blocs de code ci-dessus?

+0

Vous utilisez probablement hystrix avec feindre et son délai d'attente est par défaut 1s. – ByeBye

+0

J'ai ajouté la trace de la pile plus tard. Il n'y a pas de mention hystrix. Peut-il être à cause de l'hystrix de toute façon? –

Répondre

0

La bonne solution était

@Value("${feign.connectTimeout:10000}") 
private int connectTimeout; 

@Value("${feign.readTimeOut:300000}") 
private int readTimeout; 

@Bean 
public Request.Options options() { 
    return new Request.Options(connectTimeout, readTimeout); 
} 

et ajouter au fichier .properties celui payer-service-client.feign.hystrix.enabled=false