本文整理汇总了C#中IMessage.Requeue方法的典型用法代码示例。如果您正苦于以下问题:C# IMessage.Requeue方法的具体用法?C# IMessage.Requeue怎么用?C# IMessage.Requeue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMessage
的用法示例。
在下文中一共展示了IMessage.Requeue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleMessage
public void HandleMessage(IMessage message)
{
var messageInformation = new MessageInformation
{
UniqueIdentifier = Guid.NewGuid(),
Topic = _topic,
Channel = _channel,
HandlerType = _handlerType,
MessageType = _messageType,
Message = message,
DeserializedMessageBody = null,
Started = DateTime.UtcNow
};
_bus.SetCurrentMessageInformation(messageInformation);
// Get handler
object handler;
try
{
handler = _objectBuilder.GetInstance(_handlerType);
messageInformation.HandlerType = handler.GetType();
}
catch (Exception ex)
{
messageInformation.Finished = DateTime.UtcNow;
_messageAuditor.TryOnFailed(_logger, _bus,
new FailedMessageInformation
(
messageInformation,
FailedMessageQueueAction.Finish,
FailedMessageReason.HandlerConstructor,
ex
)
);
message.Finish();
return;
}
// Get deserialized value
object value;
try
{
value = _serializer.Deserialize(_concreteMessageType, message.Body);
}
catch (Exception ex)
{
messageInformation.Finished = DateTime.UtcNow;
_messageAuditor.TryOnFailed(_logger, _bus,
new FailedMessageInformation
(
messageInformation,
FailedMessageQueueAction.Finish,
FailedMessageReason.MessageDeserialization,
ex
)
);
message.Finish();
return;
}
// Handle message
messageInformation.DeserializedMessageBody = value;
_messageAuditor.TryOnReceived(_logger, _bus, messageInformation);
try
{
_handleMethod.Invoke(handler, new[] { value });
}
catch (Exception ex)
{
bool requeue = (message.Attempts < message.MaxAttempts);
messageInformation.Finished = DateTime.UtcNow;
if (requeue)
message.Requeue();
else
message.Finish();
_messageAuditor.TryOnFailed(_logger, _bus,
new FailedMessageInformation
(
messageInformation,
requeue ? FailedMessageQueueAction.Requeue : FailedMessageQueueAction.Finish,
FailedMessageReason.HandlerException,
ex
)
);
return;
}
messageInformation.Finished = DateTime.UtcNow;
_messageAuditor.TryOnSucceeded(_logger, _bus, messageInformation);
//.........这里部分代码省略.........
示例2: HandleMessage
public void HandleMessage(IMessage message)
{
string body = Encoding.UTF8.GetString(message.Body);
Console.WriteLine("[{0}] {1}", DateTime.Now.Formatted(), body);
switch (body)
{
case "requeue":
message.Requeue();
break;
case "requeue_no_backoff_1":
if (message.Attempts > 1)
break;
message.RequeueWithoutBackoff(delay: null);
break;
case "good":
break;
case "bad":
throw new Exception("bad");
default:
throw new InvalidOperationException(string.Format("body '{0}' not recognized", body));
}
}