gpt4 book ai didi

asynchronous - 这个异步 HystrixCommand 有什么问题?

转载 作者:行者123 更新时间:2023-12-04 05:18:06 24 4
gpt4 key购买 nike

我需要不时发送通知,我异步执行此任务。我正在使用 HystrixCommand 如下执行异步 RestTemplate 调用,但该调用不起作用:

@HystrixCommand
public Future<String> notify(final Query query) {
return new AsyncResult<String>() {
@Override
public String invoke() {
String result = null;
try {
ResponseEntity<HashMap> restExchange = restTemplate.exchange(url,
HttpMethod.POST,
new HttpEntity<String>(mapper.writeValueAsString(queryMap), httpHeaders),
HashMap.class);
LOGGER.info("Response code from " + url + " = " + restExchange.getStatusCodeValue());
result = ""+ restExchange.getStatusCodeValue();
} catch(Exception e) {
LOGGER.error("Exception while sending notification! Message = " + e.getMessage(), e);
}
return result;
}
};
}

这是我之前尝试做的(也没有工作):
@HystrixCommand
public String notify(final Query query) {
new Thread(new Runnable() {
@Override
public void run() {

try {
ResponseEntity<HashMap> restExchange = restTemplate.exchange(url, HttpMethod.POST,
new HttpEntity<String>(mapper.writeValueAsString(queryMap), httpHeaders), HashMap.class);
LOGGER.info("Response code from " + url + " = " + restExchange.getStatusCodeValue());

} catch (Exception e) {
LOGGER.error("Exception while sending notification! Message = " + e.getMessage(), e);
}

}
}).start();
}

P.S:将侦探添加到标签的原因是,在新线程中执行此操作不会传播 header (baggage-*),因此尝试此操作希望 Hystrix 命令可以解决问题

最佳答案

是否从同一类中的方法调用方法通知?如果是这种情况,请尝试直接从另一个类调用方法 notify,其中 notify 方法的封闭类作为依赖项注入(inject)。

基本上,尝试这样做:

enter image description here

而不是这个:

enter image description here

关于asynchronous - 这个异步 HystrixCommand 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44539465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com