本文整理汇总了C#中Envelope.ToToken方法的典型用法代码示例。如果您正苦于以下问题:C# Envelope.ToToken方法的具体用法?C# Envelope.ToToken怎么用?C# Envelope.ToToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Envelope
的用法示例。
在下文中一共展示了Envelope.ToToken方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FindContinuation
// virtual for testing as usual
public virtual async Task<IContinuation> FindContinuation(Envelope envelope, IEnvelopeContext context)
{
foreach (var handler in _handlers)
{
var continuation = await handler.Handle(envelope).ConfigureAwait(false);
if (continuation != null)
{
context.DebugMessage(() => new EnvelopeContinuationChosen
{
ContinuationType = continuation.GetType(),
HandlerType = handler.GetType(),
Envelope = envelope.ToToken()
});
return continuation;
}
}
// TODO - add rules for what to do when we have no handler
context.DebugMessage(() => new EnvelopeContinuationChosen
{
ContinuationType = typeof(MoveToErrorQueue),
HandlerType = typeof(HandlerPipeline),
Envelope = envelope.ToToken()
});
return new MoveToErrorQueue(new NoHandlerException(envelope.Message.GetType()));
}
示例2: Execute
public void Execute(Envelope envelope, ContinuationContext context)
{
context.Outgoing.SendOutgoingMessages(envelope, _context.OutgoingMessages());
envelope.Callback.MarkSuccessful();
context.Logger.InfoMessage(() => new MessageSuccessful {Envelope = envelope.ToToken()});
}
示例3: Execute
public override void Execute(Envelope envelope, ContinuationContext context)
{
try
{
envelope.Callback.MoveToDelayedUntil(envelope.ExecutionTime.Value);
context.Logger.InfoMessage(() => new DelayedEnvelopeReceived { Envelope = envelope.ToToken() });
}
catch (Exception e)
{
envelope.Callback.MarkFailed(e);
context.Logger.Error(envelope.CorrelationId, "Failed to move delayed message to the delayed message queue", e);
}
}
示例4: Execute
public void Execute(Envelope envelope, ContinuationContext context)
{
context.SendFailureAcknowledgement(envelope, "Chain execution failed");
envelope.Callback.MarkFailed(_exception);
context.Logger.InfoMessage(() => new MessageFailed {Envelope = envelope.ToToken(), Exception = _exception});
if (envelope.Message == null)
{
context.Logger.Error(envelope.CorrelationId, "Error trying to execute a message of type " + envelope.Headers[Envelope.MessageTypeKey], _exception);
}
else
{
context.Logger.Error(envelope.CorrelationId, envelope.Message.ToString(), _exception);
}
}
示例5: ChainExecutionWatcher
public ChainExecutionWatcher(ILogger logger, HandlerChain chain, Envelope envelope)
{
_logger = logger;
_chain = chain;
_envelope = envelope;
_logger.DebugMessage(() => new ChainExecutionStarted
{
ChainId = chain.UniqueId,
Envelope = envelope.ToToken()
});
_stopwatch.Start();
}
示例6: Execute
public void Execute(Envelope envelope, ContinuationContext context)
{
try
{
context.SendOutgoingMessages(envelope, _context.OutgoingMessages());
envelope.Callback.MarkSuccessful();
var message = new MessageSuccessful { Envelope = envelope.ToToken() };
if (!message.Envelope.IsDelayedEnvelopePollingJobRelated())
context.Logger.InfoMessage(message);
}
catch (Exception ex)
{
context.SendFailureAcknowledgement(envelope, "Sending cascading message failed: " + ex.Message);
context.Logger.Error(envelope.CorrelationId, ex.Message, ex);
envelope.Callback.MoveToErrors(new ErrorReport(envelope, ex));
}
}
示例7: FindContinuation
// virtual for testing as usual
public virtual IContinuation FindContinuation(Envelope envelope)
{
foreach (var handler in _handlers)
{
var continuation = handler.Handle(envelope);
if (continuation != null)
{
_context.Logger.DebugMessage(() => new EnvelopeContinuationChosen
{
ContinuationType = continuation.GetType(),
HandlerType = handler.GetType(),
Envelope = envelope.ToToken()
});
return continuation;
}
}
throw new NotSupportedException();
}
示例8: FindContinuation
// virtual for testing as usual
public virtual IContinuation FindContinuation(Envelope envelope)
{
foreach (var handler in _handlers)
{
var continuation = handler.Handle(envelope);
if (continuation != null)
{
_context.Logger.DebugMessage(() => new EnvelopeContinuationChosen
{
ContinuationType = continuation.GetType(),
HandlerType = handler.GetType(),
Envelope = envelope.ToToken()
});
return continuation;
}
}
// TODO - add rules for what to do when we have no handler
return new MoveToErrorQueue(new NoHandlerException(envelope.Message.GetType()));
}
示例9: Invoke
public void Invoke(Envelope envelope)
{
envelope.Attempts++; // needs to be done here.
if (envelope.Message == null)
{
envelope.UseSerializer(_serializer);
}
_context.Logger.InfoMessage(() => new EnvelopeReceived {Envelope = envelope.ToToken()});
var continuation = FindContinuation(envelope);
try
{
continuation.Execute(envelope, _context);
}
catch (Exception e)
{
envelope.Callback.MarkFailed(); // TODO -- watch this one.
_context.Logger.Error(envelope.CorrelationId,
"Failed while invoking message {0} with continuation {1}".ToFormat(envelope.Message ?? envelope,
continuation), e);
}
}
示例10: Execute
public override void Execute(Envelope envelope, IEnvelopeContext context)
{
context.SendFailureAcknowledgement(envelope, "No subscriber");
envelope.Callback.MarkSuccessful();
context.InfoMessage(() => new NoHandlerForMessage{Envelope = envelope.ToToken()});
}
示例11: Receive
public async Task Receive(Envelope envelope)
{
envelope.UseSerializer(_serializer);
using (var context = _lifecycle.StartNew(this, envelope))
{
context.InfoMessage(() => new EnvelopeReceived { Envelope = envelope.ToToken() });
// TODO -- this needs to change in all likelihood
await Invoke(envelope, context).ConfigureAwait(false);
}
}
示例12: Receive
public void Receive(Envelope envelope)
{
envelope.UseSerializer(_serializer);
using (var context = _lifecycle.StartNew(this, envelope))
{
context.InfoMessage(() => new EnvelopeReceived { Envelope = envelope.ToToken() });
Invoke(envelope, context);
}
}
示例13: Receive
public void Receive(Envelope envelope)
{
envelope.UseSerializer(_serializer);
_context.Logger.InfoMessage(() => new EnvelopeReceived { Envelope = envelope.ToToken() });
Invoke(envelope);
}