I'm trying to use the new IJobConsumer, but the job is never run.
On the project I'm testing this with, Mediator works fine, as well as regular (short-lived) consumers. The only thing that I can't seem to make work is the IJobConsumer. I'm not sure what/if I'm configuring wrong.
This is how I configured MassTransit:
services.AddMassTransit(x =>
{
x.AddServiceClient();
x.AddRabbitMqMessageScheduler();
x.UsingRabbitMq((context, configurator) =>
{
configurator.UseRabbitMqMessageScheduler();
configurator.Host(options.AzureServiceBusHostOptions.Host);
...
var serviceInstanceOptions = new ServiceInstanceOptions()
.EnableInstanceEndpoint();
configurator.ServiceInstance(serviceInstanceOptions,
instanceConfigurator =>
{
instanceConfigurator.ConfigureJobServiceEndpoints(serviceConfigurator =>
{
serviceConfigurator.FinalizeCompleted = true;
});
// Extension method that adds consumers based on my own marker interface
x.AddJobConsumersFromTypeAssembly(consumerType);
instanceConfigurator.ConfigureEndpoints(context);
instanceConfigurator.ReceiveEndpoint("import-products", e =>
{
e.ConfigureConsumer<ImportProductsConsumer>(context, c =>
{
c.Options<JobOptions<IImportProducts>>(o => o
.SetJobTimeout(TimeSpan.FromMinutes(15))
.SetConcurrentJobLimit(10));
});
});
});
This is the error I get:
[13:43:14 ERR] R-FAULT rabbitmq://localhost/Job eb810000-857f-0205-07d4-08d8c69e2d13 MassTransit.Contracts.JobService.JobSubmitted MassTransit.JobService.Components.StateMachines.JobSaga(00:00:01.0258821)
Automatonymous.NotAcceptedStateMachineException: MassTransit.JobService.Components.StateMachines.JobSaga(eb810000-857f-0205-47ed-08d8c69e2b1a) Saga exception on receipt of MassTransit.Contracts.JobService.JobSubmitted: Not accepted in state AllocatingJobSlot
---> Automatonymous.UnhandledEventException: The JobSubmitted event is not handled during the AllocatingJobSlot state for the JobStateMachine state machine
at Automatonymous.AutomatonymousStateMachine`1.DefaultUnhandledEventCallback(UnhandledEventContext`1 context)
at Automatonymous.AutomatonymousStateMachine`1.UnhandledEvent(EventContext`1 context, State state)
at Automatonymous.States.StateMachineState`1.Automatonymous.State<TInstance>.Raise[T](EventContext`2 context)
at Automatonymous.AutomatonymousStateMachine`1.Automatonymous.StateMachine<TInstance>.RaiseEvent[T](EventContext`2 context)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
--- End of inner exception stack trace ---
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.InMemoryRepository.InMemorySagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Saga.Pipeline.Filters.CorrelatedSagaFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)
[13:43:15 WRN] R-RETRY rabbitmq://localhost/Job eb810000-857f-0205-07d4-08d8c69e2d13 MassTransit.Context.RetryConsumeContext<MassTransit.Contracts.JobService.JobSubmitted>
Automatonymous.NotAcceptedStateMachineException: MassTransit.JobService.Components.StateMachines.JobSaga(eb810000-857f-0205-47ed-08d8c69e2b1a) Saga exception on receipt of MassTransit.Contracts.JobService.JobSubmitted: Not accepted in state AllocatingJobSlot
---> Automatonymous.UnhandledEventException: The JobSubmitted event is not handled during the AllocatingJobSlot state for the JobStateMachine state machine
at Automatonymous.AutomatonymousStateMachine`1.DefaultUnhandledEventCallback(UnhandledEventContext`1 context)
at Automatonymous.AutomatonymousStateMachine`1.UnhandledEvent(EventContext`1 context, State state)
at Automatonymous.States.StateMachineState`1.Automatonymous.State<TInstance>.Raise[T](EventContext`2 context)
at Automatonymous.AutomatonymousStateMachine`1.Automatonymous.StateMachine<TInstance>.RaiseEvent[T](EventContext`2 context)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
--- End of inner exception stack trace ---
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.InMemoryRepository.InMemorySagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Saga.Pipeline.Filters.CorrelatedSagaFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Saga.Pipeline.Filters.CorrelatedSagaFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Pipeline.Filters.InMemoryOutboxFilter`2.Send(TContext context, IPipe`1 next)
at MassTransit.Pipeline.Filters.InMemoryOutboxFilter`2.Send(TContext context, IPipe`1 next)
at GreenPipes.Filters.RetryFilter`1.GreenPipes.IFilter<TContext>.Send(TContext context, IPipe`1 next)
[13:43:16 ERR] R-FAULT rabbitmq://localhost/Job eb810000-857f-0205-07d4-08d8c69e2d13 MassTransit.Contracts.JobService.JobSubmitted MassTransit.JobService.Components.StateMachines.JobSaga(00:00:00.3542862)
Automatonymous.NotAcceptedStateMachineException: MassTransit.JobService.Components.StateMachines.JobSaga(eb810000-857f-0205-47ed-08d8c69e2b1a) Saga exception on receipt of MassTransit.Contracts.JobService.JobSubmitted: Not accepted in state WaitingToStart
---> Automatonymous.UnhandledEventException: The JobSubmitted event is not handled during the WaitingToStart state for the JobStateMachine state machine
at Automatonymous.AutomatonymousStateMachine`1.DefaultUnhandledEventCallback(UnhandledEventContext`1 context)
at Automatonymous.AutomatonymousStateMachine`1.UnhandledEvent(EventContext`1 context, State state)
at Automatonymous.States.StateMachineState`1.Automatonymous.State<TInstance>.Raise[T](EventContext`2 context)
at Automatonymous.AutomatonymousStateMachine`1.Automatonymous.StateMachine<TInstance>.RaiseEvent[T](EventContext`2 context)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
--- End of inner exception stack trace ---
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.InMemoryRepository.InMemorySagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Saga.Pipeline.Filters.CorrelatedSagaFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)
[13:43:18 ERR] R-FAULT rabbitmq://localhost/Job eb810000-857f-0205-07d4-08d8c69e2d13 MassTransit.Contracts.JobService.JobSubmitted MassTransit.JobService.Components.StateMachines.JobSaga(00:00:00.3506767)
Automatonymous.NotAcceptedStateMachineException: MassTransit.JobService.Components.StateMachines.JobSaga(eb810000-857f-0205-47ed-08d8c69e2b1a) Saga exception on receipt of MassTransit.Contracts.JobService.JobSubmitted: Not accepted in state WaitingToStart
---> Automatonymous.UnhandledEventException: The JobSubmitted event is not handled during the WaitingToStart state for the JobStateMachine state machine
at Automatonymous.AutomatonymousStateMachine`1.DefaultUnhandledEventCallback(UnhandledEventContext`1 context)
at Automatonymous.AutomatonymousStateMachine`1.UnhandledEvent(EventContext`1 context, State state)
at Automatonymous.States.StateMachineState`1.Automatonymous.State<TInstance>.Raise[T](EventContext`2 context)
at Automatonymous.AutomatonymousStateMachine`1.Automatonymous.StateMachine<TInstance>.RaiseEvent[T](EventContext`2 context)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
--- End of inner exception stack trace ---
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at Automatonymous.Pipeline.StateMachineSagaMessageFilter`2.Send(SagaConsumeContext`2 context, IPipe`1 next)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.SendSagaPipe`2.Send(SagaRepositoryContext`2 context)
at MassTransit.Saga.InMemoryRepository.InMemorySagaRepositoryContextFactory`1.Send[T](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Saga.Pipeline.Filters.CorrelatedSagaFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)