gpt4 book ai didi

登录项目 react 器的生产

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

我有一个关于使用项目 react 器登录 spring web-flux 生产的问题。我在暂存环境中有以下代码,它记录了很多与信号相关的信息,这当然对调试目的非常有用。

Mono.zip(localChargeIdMono, userIdMono, merchantMono, totalAmountMono, requestIdMono)
.map(this::toNewTransaction)
.log("TransactionRepository.save")
.then(chargeMono)
.map(chargeResult -> Tuples.of(transaction, chargeResult))
.map(this::toNewTransactionUpdatedWithChargeResult))
.flatMap(tuple -> Mono.zip(
transactionRepository.save(tuple.getT1()),
paymentUpdateRepository.save(tuple.getT2())))
.log("t.p.save")
.map(Tuple2::getT1)
.map(this::toChargeTransactionDto);

但我想知道这是否是记录生产环境的正确方法,还是我应该使用 doOn* 方法仅记录相关数据,例如副作用函数输入/输出参数。

Mono.zip(localChargeIdMono, userIdMono, merchantMono, totalAmountMono, requestIdMono)
.map(this::toNewTransaction)
.donOnNext(e -> log.info(e))
.then(chargeMono)
.map(chargeResult -> Tuples.of(transaction, chargeResult))
.map(this::toNewTransactionUpdatedWithChargeResult))
.flatMap(tuple -> Mono.zip(
transactionRepository.save(tuple.getT1()),
paymentUpdateRepository.save(tuple.getT2())))
.donOnNext(e -> log.info(e))
.map(Tuple2::getT1)
.map(this::toChargeTransactionDto);

我正在寻找与在生产环境中使用项目 react 堆的经验更相关的答案,因为这是我第一次。

谢谢

最佳答案

But i was wondering whether this is the correct way of logging on production or should i use doOn* methods to log only relevant data such as side effects function in/out params.

您可以同时使用两者 - 完全没有问题。他们显然会做不同的事情(log() 会为您提供其他订户级别的信息,例如请求的需求、取消等,您不会从 doOnXXX 获得这些信息)但是两者都可以在生产中使用。既不执行特别昂贵的操作,如生成堆栈跟踪 AFAIK。

据我所知,在登录生产环境时,您只需要注意两件真实的事情:

  • 避免Hooks.onOperatorDebug()。当然,对于调试非常有用,但会生成大量代价非常高的堆栈跟踪。
  • 必须使用异步附加程序,而不是同步/阻塞日志记录附加程序。这会吸引更多人注意,因为它通常隐藏在日志配置文件中而不是代码中,但这很重要 - 否则您的每个日志调用都是阻塞操作。

关于登录项目 react 器的生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66895472/

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