结束我处理事件与HandleMyEvent类NServiceBus事件超时队列
public class HandleMyEvent : IHandleMessages<MyEvent>
{
private readonly IBus _bus;
private readonly IWorkorker _workerTools;
public HandleProductInstanceEvent(IBus bus, IWorkorker worker)
{
_bus = bus;
_workerTools = worker;
}
public void Handle(IProductInstancesUpdatedEvent message)
{
var worker = new myWorker(_bus, _worker);
myWorker.DoWork(message.data);
}
}
myWorker.DoWork可以为其做之前长达5分钟。
当发布者发送一个“MyEvent”时,看起来处理程序在消息在超时队列中结束之前收到5个事件,我猜测它在放弃之前会重试5次。
在日志文件中我能找到这个入口
NServiceBus.Unicast.Queuing.FailedToSendMessageException: Failed to send message to address: [email protected] ---> System.Messaging.MessageQueueException: Cannot enlist the transaction.
at System.Messaging.MessageQueue.SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
at NServiceBus.Transports.Msmq.MsmqMessageSender.Send(TransportMessage message, Address address) in c:\work\3206e2123f54fce4\src\NServiceBus.Core\Transports\Msmq\MsmqMessageSender.cs:line 59
为什么会出现这个错误?
Added Configure.Transactions.Advanced( settings => settings.DefaultTimeout(TimeSpan.FromMinutes(10)));到我的端点配置,现在它工作:) – CruelIO