Nservicebus 在调用MarkAsComplete时,是否可以不使用长超时来设置Saga的TTL?

Nservicebus 在调用MarkAsComplete时,是否可以不使用长超时来设置Saga的TTL?,nservicebus,Nservicebus,现在,我们完成了从商业角度来看是成功的传奇,但我们将失败的传奇存储了3个月——我们设置了一个超时,然后将传奇标记为完成 是否有一种更通用的方式来设置saga的生存时间,而不涉及底层消息服务 例如,AWS SQS最大延迟为15分钟,但对我们来说,每周运行一次垃圾收集作业就足够了。NSB有这个选项吗 是否有一种更通用的方式来设置saga的生存时间,而不涉及底层消息服务 NServiceBus使用延迟消息实现超时。SQS恰好被限制在最多15分钟内。为了克服这一限制,传输重新调度消息多次以获得所需的延迟

现在,我们完成了从商业角度来看是成功的传奇,但我们将失败的传奇存储了3个月——我们设置了一个超时,然后将传奇标记为完成

是否有一种更通用的方式来设置saga的生存时间,而不涉及底层消息服务

例如,AWS SQS最大延迟为15分钟,但对我们来说,每周运行一次垃圾收集作业就足够了。NSB有这个选项吗

是否有一种更通用的方式来设置saga的生存时间,而不涉及底层消息服务

NServiceBus使用延迟消息实现超时。SQS恰好被限制在最多15分钟内。为了克服这一限制,传输重新调度消息多次以获得所需的延迟。其他传输(如Azure Service Bus、RabbitMQ、SQL Server传输)不需要此功能,因为它们可以在必要的时间内发送单个延迟消息。RabbitMQ本身也不支持它,因此它也在内部实现该特性。没有“通用”实现。它总是特定于您使用的交通工具

这正是NServiceBus使用延迟交付所做的。不幸的是,正如您所注意到的,SQS不支持超过15分钟的周期

您可以使用一个第三方调度库,它将发送一条消息来完成这个传奇

我还将在内部跟进,看看是否有其他建议