Skip to content

Instantly share code, notes, and snippets.

@senritsu
Last active August 24, 2020 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save senritsu/33c8e648dbdfd9c792f655a4616cbc53 to your computer and use it in GitHub Desktop.
Save senritsu/33c8e648dbdfd9c792f655a4616cbc53 to your computer and use it in GitHub Desktop.
namespace MassTransitTestService
{
using System;
using System.Threading.Tasks;
using AlgorithmicMapsContracts.MassTransitTest;
using MassTransit.JobService;
using Microsoft.Extensions.Logging;
public class ConvertVideoConsumer : IJobConsumer<ConvertVideoCommand>
{
private readonly ILogger<ConvertVideoConsumer> _logger;
public ConvertVideoConsumer(ILogger<ConvertVideoConsumer> logger)
{
_logger = logger;
}
public async Task Run(JobContext<ConvertVideoCommand> context)
{
_logger.LogInformation($"starting job with format {context.Job.Format}");
_logger.LogInformation($"starting delay");
await Task.Delay(TimeSpan.FromSeconds(10));
if (context.Job.Format == "crash")
{
_logger.LogInformation($"throwing exception");
throw new ApplicationException("crashed by design");
}
_logger.LogInformation($"job with format {context.Job.Format} done");
}
}
}
info: MassTransitTestService.ConvertVideoConsumer[0]
starting job with format mkv
info: MassTransitTestService.ConvertVideoConsumer[0]
starting delay
info: MassTransitTestService.ConvertVideoConsumer[0]
job with format mkv done
info: MassTransitTestService.ConvertVideoConsumer[0]
starting job with format crash
info: MassTransitTestService.ConvertVideoConsumer[0]
starting delay
info: MassTransitTestService.ConvertVideoConsumer[0]
throwing exception
dbug: MassTransit.ReceiveTransport[0]
Job Faulted: 50ad0000-5d25-0015-704b-08d848031bc7 50ad0000-5d25-0015-1a3c-08d848031c0e (0)
System.ApplicationException: crashed by design
at MassTransitTestService.ConvertVideoConsumer.Run(JobContext`1 context) in C:\GIT\algorithmic-maps-service\MassTransitTestService\ConvertVideoConsumer.cs:line 31
at MassTransit.JobService.Pipeline.JobConsumerMessageFilter`2.RunJob(PipeContext context, IJobConsumer`1 jobConsumer)
dbug: MassTransit.ReceiveTransport[0]
Declare exchange: name: MassTransit.Contracts.JobService:JobAttemptFaulted, type: fanout, durable
dbug: MassTransit.ReceiveTransport[0]
SEND rabbitmq://localhost/MassTransit.Contracts.JobService:JobAttemptFaulted 50ad0000-5d25-0015-3c46-08d84803228a MassTransit.Contracts.JobService.JobAttemptFaulted
dbug: MassTransit.ReceiveTransport[0]
RECEIVE rabbitmq://localhost/convert-video 50ad0000-5d25-0015-a11a-08d848031c42 MassTransitTestService.ConvertVideoCommand MassTransitTestService.ConvertVideoConsumer(00:00:10.5353202)
dbug: MassTransit.ReceiveTransport[0]
SAGA:MassTransit.JobService.Components.StateMachines.JobAttemptSaga:50ad0000-5d25-0015-1a3c-08d848031c0e Used MassTransit.Contracts.JobService.JobAttemptFaulted
dbug: MassTransit.ReceiveTransport[0]
SAGA:MassTransit.JobService.Components.StateMachines.JobSaga:50ad0000-5d25-0015-704b-08d848031bc7 Used MassTransit.Contracts.JobService.JobAttemptFaulted
dbug: MassTransit.ReceiveTransport[0]
Removed job: 50ad0000-5d25-0015-704b-08d848031bc7 (RanToCompletion)
dbug: MassTransit.ReceiveTransport[0]
RECEIVE rabbitmq://localhost/job-attempt 50ad0000-5d25-0015-3c46-08d84803228a MassTransit.Contracts.JobService.JobAttemptFaulted MassTransit.JobService.Components.StateMachines.JobAttemptSaga(00:00:00.0133173)
dbug: MassTransit.ReceiveTransport[0]
RECEIVE rabbitmq://localhost/job 50ad0000-5d25-0015-3c46-08d84803228a MassTransit.Contracts.JobService.JobAttemptFaulted MassTransit.JobService.Components.StateMachines.JobSaga(00:00:00.0456616)
dbug: MassTransit.ReceiveTransport[0]
Declare exchange: name: MassTransit.Contracts.JobService:JobFaulted, type: fanout, durable
dbug: MassTransit.ReceiveTransport[0]
SEND rabbitmq://localhost/MassTransit.Contracts.JobService:JobFaulted 50ad0000-5d25-0015-0d02-08d84803229b MassTransit.Contracts.JobService.JobFaulted
dbug: MassTransit.ReceiveTransport[0]
SEND rabbitmq://localhost/job-type?bind=true 50ad0000-5d25-0015-c7e0-08d84803229f MassTransit.Contracts.JobService.JobSlotReleased
dbug: MassTransit.ReceiveTransport[0]
SAGA:MassTransit.JobService.Components.StateMachines.JobTypeSaga:d4411331-8ced-d85b-25d7-bf9342c0bfbd Used MassTransit.Contracts.JobService.JobSlotReleased
dbug: MassTransit.ReceiveTransport[0]
Released Job Slot: 50ad0000-5d25-0015-704b-08d848031bc7 (0)
dbug: MassTransit.ReceiveTransport[0]
RECEIVE rabbitmq://localhost/job-type 50ad0000-5d25-0015-c7e0-08d84803229f MassTransit.Contracts.JobService.JobSlotReleased MassTransit.JobService.Components.StateMachines.JobTypeSaga(00:00:00.0073459)
namespace MassTransitTestService
{
using System.Reflection;
using MassTransit;
using MassTransit.Conductor;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddMassTransit(x =>
{
x.SetKebabCaseEndpointNameFormatter();
x.AddConsumers(Assembly.GetExecutingAssembly());
x.AddRabbitMqMessageScheduler();
x.UsingRabbitMq((context, cfg) =>
{
cfg.Host("localhost", "/", h =>
{
h.Username("guest");
h.Password("guest");
});
cfg.UseDelayedExchangeMessageScheduler();
var serviceInstanceOptions = new ServiceInstanceOptions()
.EnableInstanceEndpoint()
.EnableJobServiceEndpoints();
cfg.ConfigureServiceEndpoints(context, serviceInstanceOptions);
});
x.AddServiceClient();
});
services.AddHostedService<Worker>();
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment