gpt4 book ai didi

error-handling - NServiceBus 4.03,Bus.Send后跟一个错误情况

转载 作者:行者123 更新时间:2023-12-03 08:57:39 26 4
gpt4 key购买 nike

我在佐贺有以下情况

场景1

Bus.Send<SendEmail>(message);
Data.Status = "email send requested";

如果数据库暂时关闭,该怎么办?
  • 邮件将被发送吗?
  • 如果是,那么将触发重试(FLR/SLR),这将再次发送消息?

  • 方案2
    Bus.Send<SendEmail>(message1); 
    some logic/mappers to build up messsage2 // what if this line blows up...?
    Bus.Send<SendEmail>(message2);
  • 邮件将被发送吗?
  • 最佳答案

    在方案1中,如果将传奇数据持久化的数据库在加载传奇数据后作为处理触发传奇的消息的一部分而崩溃,则将不发送SendEmail消息,并且触发传奇的消息将回滚。

    请注意,并不是说Data.Status =“...”调用会失败,因为那只会更新内存中的数据结构,此结构随后将保留。

    关于场景2,您必须更加清楚:是逻辑炸毁作为处理发送消息的一部分而调用的逻辑,还是在Bus.Send(message)之后的行上调用的逻辑?

    更新

    由于您在场景2中描述的逻辑是由于处理其他消息而发生的,因此,只要您没有关闭端点的默认事务性,那么除非整个过程完成,否则不会发送消息。成功。

    关于error-handling - NServiceBus 4.03,Bus.Send后跟一个错误情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19136049/

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