Last active
August 24, 2020 07:57
-
-
Save senritsu/33c8e648dbdfd9c792f655a4616cbc53 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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