Skip to Content

MassTransit

Die MassTransit Extension ermöglicht die Integration der ProcessCube Engine mit MassTransit für Service-Bus-Kommunikation.

Funktionsbeschreibung

MassTransit ist ein Open-Source Distributed Application Framework für .NET. Mit dieser Extension können Sie:

  • Prozess-Events an MassTransit senden
  • Messages von MassTransit empfangen und Prozesse starten
  • Service-Bus-Patterns implementieren

Docker Compose einrichten

Um die Engine mit MassTransit zu verwenden, benötigen Sie einen Message Broker wie RabbitMQ:

version: '3.7' services: rabbitmq: image: rabbitmq:3-management ports: - "5672:5672" - "15672:15672" environment: RABBITMQ_DEFAULT_USER: admin RABBITMQ_DEFAULT_PASS: admin engine: image: 5minds/processcube_engine:latest ports: - "8000:8000" environment: - masstransitExtension__enabled=true - masstransitExtension__host=rabbitmq - masstransitExtension__port=5672 - masstransitExtension__user=admin - masstransitExtension__password=admin depends_on: - rabbitmq consumer: build: ./ConsumerApp environment: - RabbitMQ__Host=rabbitmq - RabbitMQ__Username=admin - RabbitMQ__Password=admin depends_on: - rabbitmq

Consumer App

Eine Consumer App kann in C# mit MassTransit implementiert werden:

Consumer

// WriteToConsoleConsumer.cs using MassTransit; namespace ConsumerApp.Consumers { public class WriteToConsoleConsumer : IConsumer<WriteToConsole> { public Task Consume(ConsumeContext<WriteToConsole> context) { Console.WriteLine($"Received: {context.Message.Text}"); return Task.CompletedTask; } } }

Consumer Definition

// WriteToConsoleConsumerDefinition.cs using MassTransit; namespace ConsumerApp.Consumers { public class WriteToConsoleConsumerDefinition : ConsumerDefinition<WriteToConsoleConsumer> { protected override void ConfigureConsumer( IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator<WriteToConsoleConsumer> consumerConfigurator) { endpointConfigurator.UseMessageRetry(r => r.Intervals(500, 1000)); } } }

Contract

// WriteToConsole.cs namespace ConsumerApp.Contracts { public record WriteToConsole { public string Text { get; init; } } }

Konfiguration

Die Extension wird über Umgebungsvariablen konfiguriert:

  • masstransitExtension__enabled: Aktiviert die MassTransit Extension
  • masstransitExtension__host: Hostname des Message Brokers
  • masstransitExtension__port: Port des Message Brokers
  • masstransitExtension__user: Benutzername
  • masstransitExtension__password: Passwort