Обработчик неисправности конечного автомата Masstransit не запущенC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Обработчик неисправности конечного автомата Masstransit не запущен

Сообщение Anonymous »

Я работаю с MassTransit и настраиваю свой конечный автомат. Конвейер Saga, похоже, не запускает обработчик Faulted, когда в действии происходит исключение.
Чтобы проверить это и убедиться, что объяснение проще, я попытался использовать библиотеку примеров общественного транспорта ( https://github.com/MassTransit/Sample-Library), и я вижу то же самое.
Я изменил NotifyMemberActivity, и теперь он выглядит так:

Код: Выделить всё

public class NotifyMemberActivity :
IStateMachineActivity
{
readonly IMemberRegistry _memberRegistry;

public NotifyMemberActivity(IMemberRegistry memberRegistry)
{
_memberRegistry = memberRegistry;
}

public void Probe(ProbeContext context)
{
context.CreateScope("notifyMember");
}

public void Accept(StateMachineVisitor visitor)
{
visitor.Visit(this);
}

public async Task Execute(BehaviorContext context, IBehavior next)
{
await Execute(context);
throw new NotImplementedException();

await next.Execute(context);
}

public async Task Execute(BehaviorContext context, IBehavior next)
where T : class
{
await Execute(context);
throw new NotImplementedException();

await next.Execute(context);
}

public Task Faulted(BehaviorExceptionContext context, IBehavior next)
where TException : Exception
{
return next.Faulted(context);
}

public Task Faulted(BehaviorExceptionContext context, IBehavior next)
where TException : Exception
where T : class
{
return next.Faulted(context);
}

async Task Execute(BehaviorContext context)
{
var isValid = await _memberRegistry.IsMemberValid(context.Saga.MemberId);
if (!isValid)
throw new InvalidOperationException("Invalid memberId");

throw new NotImplementedException();

var consumeContext = context.GetPayload();

await consumeContext.Publish(new
{
context.Saga.MemberId,
context.Saga.DueDate
});
}
}
Как вы можете видеть, выдаются нереализованные исключения.
Я ожидал, что если в активности участника уведомления произойдет исключение, то Faulted метод будет запущен. Внутри этого ошибочного события я хотел выполнить любые действия, которые должны произойти, чтобы компенсировать произошедший сбой, но, похоже, это вообще не работает.
Есть что-то, что я' Я неправильно настраиваю или мне не хватает понимания того, как следует обрабатывать сбои конечного автомата?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -triggered
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Обработчик неисправности конечного автомата Masstransit не запущен
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как получить доступ к элементам конечного автомата из подгосударственного автомата?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Код C++ для конечного автомата
    Гость » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Код C++ для конечного автомата
    Гость » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Гость
  • Сколько раз MoveNext() выполняется в C# в ожидании конечного автомата?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»