我有一个宁静的服务,使用Spring Cloud Feign客户端调用外部服务
@FeignClient(name = "external-service", configuration = FeignClientConfig.class)
public interface ServiceClient {
@RequestMapping(value = "/test/payments", method = RequestMethod.POST)
public void addPayment(@Valid @RequestBody AddPaymentRequest addPaymentRequest);
@RequestMapping(value = "/test/payments/{paymentId}", method = RequestMethod.PUT)
public ChangePaymentStatusResponse updatePaymentStatus(@PathVariable("paymentId") String paymentId,
@Valid @RequestBody PaymentStatusUpdateRequest paymentStatusUpdateRequest);
}
Run Code Online (Sandbox Code Playgroud)
最近3个月,我在日志文件中发现3-4次以下失败:
json.ERROR_RESPONSE_BODY:连接拒绝执行POST http:// external-service / external / payments json.message:发送付款添加付款失败出于其他原因:{ERROR_RESPONSE_BODY =连接拒绝执行POST http:// external-service / external / payments,EVENT = ADD_PAYMENT_FAILURE,TRANSACTION_ID = XXXXXXX} {} json.EVENT:ADD_PAYMENT_FAILURE json.stack_trace:feign.RetryableException:连接拒绝执行POST http:// external-service / external / payments 在feign.FeignException.errorExecuting(FeignException.java:67)在feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)在feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)在feign.ReflectiveFeign $ FeignInvocationHandler.invoke(Reflective) Java:103)
是否可以在Feign客户端上添加Spring Retry。我想用什么来注释addPayment操作
@Retryable(value …Run Code Online (Sandbox Code Playgroud) spring spring-retry spring-boot spring-cloud spring-cloud-feign
我坚持使用 removeif java 8 并寻求帮助
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters();
Run Code Online (Sandbox Code Playgroud)
从交易中我想根据检查对象的属性删除这些交易
如果 transaction.getFileHash 不为空,那么我想删除该交易。如果 transaction.getFileHash 为 null 我想保留它。
所以我正在尝试 removeif
List<ACHTransaction> transactions = transactionDao.retrieveTransactions(getJobParameters().removeIf(t -> (Optional.ofNullable(t.getFileHash()).orElse(0).intValue() != 0));
Run Code Online (Sandbox Code Playgroud)
但我收到错误。有人可以解释 removeif 如何处理对象属性吗?