我刚接触React式编程,我希望在处理错误时将对象保存到DB中,但据我所知,调用block()方法不是最佳实践
mailFailureRepository.save(failure).block();
有没有一种方法可以在不中断流的情况下完成此操作?我想我应该重新构建线程链,但我不太明白在我的情况下如何进行
我也会很高兴任何信息资源
public Mono<Object> sendEmail(SendEmailRequest request)
throws MailTemplateNotSupportedException, ExactTargetException {
log.debug("Send email process started.");
return validateRequestAndSendMail(request)
.onErrorResume(error -> {
if (error instanceof ExactTargetException ex) {
MailFailure failure = MailFailure.builder()
.templateKey(request.getTemplateKey())
.templateParams(request.getTemplateParams() != null ? request.getTemplateParams().toString() : null)
.subscriberHash(request.getSubscriberHash())
.email(request.getEmail())
.responseStatus(ex.getStatus())
.responsePayload(ex.getBody())
.build();
mailFailureRepository.save(failure).block();
return Mono.error(error);
}
return Mono.error(error);
});
1条答案
按热度按时间xfyts7mz1#
为什么不保存,然后返回错误没有阻塞: