我想补充的Redis持久化到我的传奇这是管理调用传送名单(以及取决于路由名单的结果,其他消费者的其他消息)的希望,这将解决另一个超时问题我不断收到。
不过,我得到它出现在在RabbitMQ的我saga_error队列中的错误消息。
在该消息中所示的错误是:
方法汇编“接受”在类型“GreenPipes.DynamicInternal.Automatonymous.State“AutomatonymousGreenPipes.DynamicInternalc83411641fad46798326d78fe60522c9,版本= 0.0.0.0,文化=中立,公钥=空”不具有实施
我的相关配置代码为:
InstanceState(s => s.CurrentState);
Event(() => RequestLinkEvent, x => x.CorrelateById(context => context.Message.LinkId).SelectId(y => y.Message.LinkId));
Event(() => LinkCreatedEvent, x => x.CorrelateById(context => context.Message.LinkId));
Event(() => CreateLinkGroupFailedEvent, x => x.CorrelateById(context => context.Message.LinkId));
Event(() => CreateLinkFailedEvent, x => x.CorrelateById(context => context.Message.LinkId));
Event(() => RequestLinkFailedEvent, x => x.CorrelateById(context => context.Message.LinkId));
Request(() => LinkRequest, x => x.UrlRequestId, cfg =>
{
cfg.ServiceAddress = new Uri($"{hostAddress}/{nameof(SelectUrlByPublicId)}");
cfg.SchedulingServiceAddress = new Uri($"{hostAddress}/{nameof(SelectUrlByPublicId)}");
cfg.Timeout = TimeSpan.FromSeconds(30);
});
在上面的代码中的链路ID始终是唯一的GUID。
这个问题似乎在传奇被读回已经从我的路由发送滑的事件发生(无论是成功或失败的事件)。
不工作的一个例子事件接口是:
public interface ILinkCreated
{
Guid? CorrelationId { get; set; }
int DatabaseId { get; set; }
Guid LinkId { get; set; }
string LinkName { get; set; }
}
如果我切换回一个InMemorySagaRepository一切作品(局部)。 我试过的东西这么多不同的组合,现在已经撞南墙。
我已经更新了所有的包到最新版本。 我也一直在检查我的Redis数据库,可以看到,状态机实例去每次都正确。
我还看到有人在谷歌集团有同样的问题,但有自己的后没有任何反应。