private static void RegisterBus(ContainerBuilder builder) { var helper = new ParameterBusHelper(); BusConfigurator.ConfigureBus(builder, MonitoredServices.VecteurService, (cfg, ctx) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); }
private void StartBus() { var helper = new ParameterBusHelper(); var containerBuilder = new ContainerBuilder(); BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.CacheService, (cfg, ctx) => { cfg.ReceiveEndpoint(BusConstants.CacheDoesExistRequestQueue, ec => { ec.Consumer(() => new DoesExistInCacheRequestConsumer()); }); cfg.ReceiveEndpoint(BusConstants.CacheConnectionInfoRequestQueue, ec => { ec.Consumer(() => new CacheConnectionInfoRequestConsumer()); }); cfg.ReceiveEndpoint(BusConstants.CacheDeleteFile, ec => { ec.Consumer(() => new DeleteFileFromCacheConsumer()); ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); var container = containerBuilder.Build(); Bus = container.Resolve <IBusControl>(); Bus.Start(); }
private void StartBus() { var helper = new ParameterBusHelper(); Bus = BusConfigurator.ConfigureBus(MonitoredServices.VecteurService, (cfg, host) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); }); Bus.Start(); }
/// <summary> /// Starts the Index Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Index service is starting"); // Configure Bus var helper = new ParameterBusHelper(); bus = BusConfigurator.ConfigureBus(MonitoredServices.IndexService, (cfg, host) => { cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateArchiveRecordMessageQueue, ec => { ec.Consumer(() => kernel.Get <UpdateArchiveRecordConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerRemoveArchiveRecordMessageQueue, ec => { ec.Consumer(() => kernel.Get <RemoveArchiveRecordConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerFindArchiveRecordMessageQueue, ec => { ec.Consumer(() => kernel.Get <FindArchiveRecordConsumer>()); }); cfg.ReceiveEndpoint(string.Format(BusConstants.IndexManagagerRequestBase, nameof(GetArchiveRecordsForPackageRequest)), ec => { ec.Consumer(() => kernel.Get <SimpleConsumer <GetArchiveRecordsForPackageRequest, GetArchiveRecordsForPackageResponse, IIndexManager> >()); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateIndivTokensMessageQueue, ec => { ec.Consumer(() => kernel.Get <UpdateIndivTokensConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.MonitoringElasticSearchTestQueue, ec => { ec.Consumer(() => kernel.Get <TestElasticSearchRequestConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerGetElasticLogRecordsRequestQueue, ec => { ec.Consumer(() => kernel.Get <SimpleConsumer <GetElasticLogRecordsRequest, GetElasticLogRecordsResponse, IElasticLogManager> >()); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); cfg.UseSerilog(); }); // Add the bus instance to the IoC container kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IParameterHelper>().To <ParameterHelper>(); bus.Start(); var elasticLogManager = kernel.Get <IElasticLogManager>(); deleteOldLogIndexesTimer = new Timer(t => elasticLogManager.DeleteOldLogIndexes(), null, TimeSpan.Zero, TimeSpan.FromDays(1)); Log.Information("Index service started"); }
public static void RegisterBus(this ContainerBuilder builder) { // Configure Bus var helper = new ParameterBusHelper(); BusConfigurator.ConfigureBus(builder, MonitoredServices.NotMonitored, (cfg, ctx) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); }
private void InitBus() { var helper = new ParameterBusHelper(); bus = BusConfigurator.ConfigureBus(MonitoredServices.OnboardingService, (cfg, host) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); cfg.UseSerilog(); }); bus.Start(); // Add the bus instance to the IoC container Startup.Kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); }
/// <summary> /// Starts the Index Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Index service is starting"); // Configure Bus var helper = new ParameterBusHelper(); BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.IndexService, (cfg, ctx) => { cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateArchiveRecordMessageQueue, ec => { ec.Consumer(ctx.Resolve<UpdateArchiveRecordConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerRemoveArchiveRecordMessageQueue, ec => { ec.Consumer(ctx.Resolve<RemoveArchiveRecordConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerFindArchiveRecordMessageQueue, ec => { ec.Consumer(ctx.Resolve<FindArchiveRecordConsumer>); }); cfg.ReceiveEndpoint(string.Format(BusConstants.IndexManagagerRequestBase, nameof(GetArchiveRecordsForPackageRequest)), ec => { ec.Consumer(ctx.Resolve<IConsumer<GetArchiveRecordsForPackageRequest>>); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateIndivTokensMessageQueue, ec => { ec.Consumer(ctx.Resolve<UpdateIndivTokensConsumer>); }); cfg.ReceiveEndpoint(BusConstants.MonitoringElasticSearchTestQueue, ec => { ec.Consumer(ctx.Resolve<TestElasticSearchRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.IndexManagerGetElasticLogRecordsRequestQueue, ec => { ec.Consumer(ctx.Resolve<IConsumer<GetElasticLogRecordsRequest>>); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); var container = containerBuilder.Build(); bus = container.Resolve<IBusControl>(); bus.Start(); var elasticLogManager = container.Resolve<IElasticLogManager>(); deleteOldLogIndexesTimer = new Timer(t => elasticLogManager.DeleteOldLogIndexes(), null, TimeSpan.Zero, TimeSpan.FromDays(1)); Log.Information("Index service started"); }
/// <summary> /// Starts the Repository Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Repository service is starting"); // Configure Bus var helper = new ParameterBusHelper(); bus = BusConfigurator.ConfigureBus(MonitoredServices.RepositoryService, (cfg, host) => { cfg.ReceiveEndpoint(BusConstants.RepositoryManagerDownloadPackageMessageQueue, ec => { ec.Consumer(() => kernel.Get <DownloadPackageConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.RepositoryManagerArchiveRecordAppendPackageMessageQueue, ec => { ec.Consumer(() => kernel.Get <AppendPackageConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.RepositoryManagerReadPackageMetadataMessageQueue, ec => { ec.Consumer(() => kernel.Get <ReadPackageMetadataConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(3, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.MonitoringDirCheckQueue, ec => { ec.Consumer(() => kernel.Get <CheckDirConsumer>()); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); cfg.UseSerilog(); }); // Add the bus instance to the IoC container kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IRequestClient <GetArchiveRecordsForPackageRequest, GetArchiveRecordsForPackageResponse> >() .ToMethod(GetArchiveRecordsForPackageRequestClientCallback); bus.Start(); Log.Information("Repository service started"); }
public static void Configure(IKernel kernel) { // Configure Bus var helper = new ParameterBusHelper(); bus = BusConfigurator.ConfigureBus(MonitoredServices.NotMonitored, (cfg, host) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); cfg.UseSerilog(); }); kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope(); bus.Start(); Log.Information("CMI.Web.Frontend bus service started"); }
public static void RegisterBus(this ContainerBuilder builder) { var helper = new ParameterBusHelper(); // Configure Bus BusConfigurator.ConfigureBus(builder, MonitoredServices.NotMonitored, (cfg, ctx) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); cfg.ReceiveEndpoint(BusConstants.ManagementApiAbbyyProgressEventQueue, ec => { ec.Consumer(ctx.Resolve <AbbyyProgressEventConsumer>); }); cfg.ReceiveEndpoint(BusConstants.ManagementApiDocumentConverterServiceStartedQueue, ec => { ec.Consumer(ctx.Resolve <DocumentConverterServiceStartedEventConsumer>); }); }); builder.Register(c => CreateFindArchiveRecordRequestClient()).As <IRequestClient <FindArchiveRecordRequest> >(); }
/// <summary> /// Starts the Repository Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Repository service is starting"); // Configure Bus var helper = new ParameterBusHelper(); BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.RepositoryService, (cfg, ctx) => { cfg.ReceiveEndpoint(BusConstants.RepositoryManagerDownloadPackageMessageQueue, ec => { ec.Consumer(ctx.Resolve <DownloadPackageConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.RepositoryManagerArchiveRecordAppendPackageMessageQueue, ec => { ec.Consumer(ctx.Resolve <AppendPackageConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.RepositoryManagerReadPackageMetadataMessageQueue, ec => { ec.Consumer(ctx.Resolve <ReadPackageMetadataConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(3, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.MonitoringDirCheckQueue, ec => { ec.Consumer(ctx.Resolve <CheckDirConsumer>); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); containerBuilder.Register(GetArchiveRecordsForPackageRequestClientCallback); var container = containerBuilder.Build(); bus = container.Resolve <IBusControl>(); bus.Start(); Log.Information("Repository service started"); }
public void Start() { ParameterBus = BusConfigurator.ConfigureBus((cfg, host) => { cfg.ReceiveEndpoint(host, "GetAllParametersA", ep => { ep.Handler <GetParameterEvent>(context => { ParameterBusHelper.SubscribeGetEvent <ExampleSettingA>(ParameterBus); return(Console.Out.WriteLineAsync("Get Parameters")); }); }); cfg.ReceiveEndpoint(host, "SaveParametersA", ep => { ep.Handler <SaveParameterEvent>(context => { ParameterBusHelper.SubscribeSaveEvent <ExampleSettingA>(ParameterBus, context.Message.Parameter); return(Console.Out.WriteLineAsync("Saved Parameter")); }); }); }); ParameterBus.Start(); }
/// <summary> /// Starts the Harvest Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Harvest service is starting"); // Configure Bus bus = BusConfigurator.ConfigureBus(MonitoredServices.HarvestService, (cfg, host) => { cfg.ReceiveEndpoint(BusConstants.HarvestManagerSyncArchiveRecordMessageQueue, ec => { ec.Consumer(() => kernel.Get <SyncArchiveRecordConsumer>()); // Retry for a maximum of 10 times with the following intervals // 00:00:6 minInterval + 1 * intervalDelta // 00:00:11 minInterval + 2 * intervalDelta // 00:00:21 minInterval + 4 * intervalDelta // 00:00:41 minInterval + 8 * intervalDelta // 00:01:21 minInterval + 16 * intervalDelta // 00:02:41 minInterval + 32 * intervalDelta // 00:05:00 maxInterval // 00:05:00 // 00:05:00 // 00:05:00 ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordUpdatedEventQueue, ec => { ec.Consumer(() => kernel.Get <ArchiveRecordUpdatedConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordRemovedEventQueue, ec => { ec.Consumer(() => kernel.Get <ArchiveRecordRemovedConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerResyncArchiveDatabaseMessageQueue, ec => { ec.Consumer(() => kernel.Get <ArchiveDatabaseResyncConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestStatusInfoRequestQueue, ec => { ec.Consumer(() => kernel.Get <HarvestStatusInfoConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestLogInfoRequestQueue, ec => { ec.Consumer(() => kernel.Get <HarvestLogInfoConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.MonitoringAisDbCheckQueue, ec => { ec.Consumer(() => kernel.Get <CheckAisDbConsumer>()); }); cfg.UseSerilog(); // Wire up the parameter manager var helper = new ParameterBusHelper(); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); }); // Add the bus instance to the IoC container kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IRequestClient <FindArchiveRecordRequest, FindArchiveRecordResponse> >() .ToMethod(CreateFindArchiveRecordRequestClient); bus.Start(); Log.Information("Harvest service started"); }
/// <summary> /// Starts the Harvest Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Harvest service is starting"); // Configure Bus BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.HarvestService, (cfg, ctx) => { cfg.ReceiveEndpoint(BusConstants.HarvestManagerSyncArchiveRecordMessageQueue, ec => { ec.Consumer(ctx.Resolve <SyncArchiveRecordConsumer>); // Retry for a maximum of 10 times with the following intervals // 00:00:6 minInterval + 1 * intervalDelta // 00:00:11 minInterval + 2 * intervalDelta // 00:00:21 minInterval + 4 * intervalDelta // 00:00:41 minInterval + 8 * intervalDelta // 00:01:21 minInterval + 16 * intervalDelta // 00:02:41 minInterval + 32 * intervalDelta // 00:05:00 maxInterval // 00:05:00 // 00:05:00 // 00:05:00 ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordUpdatedEventQueue, ec => { ec.Consumer(ctx.Resolve <ArchiveRecordUpdatedConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordRemovedEventQueue, ec => { ec.Consumer(ctx.Resolve <ArchiveRecordRemovedConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.HarvestManagerResyncArchiveDatabaseMessageQueue, ec => { ec.Consumer(ctx.Resolve <ArchiveDatabaseResyncConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestStatusInfoRequestQueue, ec => { ec.Consumer(ctx.Resolve <HarvestStatusInfoConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestLogInfoRequestQueue, ec => { ec.Consumer(ctx.Resolve <HarvestLogInfoConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.MonitoringAisDbCheckQueue, ec => { ec.Consumer(ctx.Resolve <CheckAisDbConsumer>); }); // Wire up the parameter manager var helper = new ParameterBusHelper(); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); containerBuilder.Register(CreateFindArchiveRecordRequestClient); var container = containerBuilder.Build(); bus = container.Resolve <IBusControl>(); bus.Start(); Log.Information("Harvest service started"); }
/// <summary> /// Starts the Order Service. /// Called by the service host when the service is started. /// </summary> public void Start() { Log.Information("Order service is starting"); // Configure Bus var helper = new ParameterBusHelper(); BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.OrderService, (cfg, ctx) => { cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(AddToBasketRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <AddToBasketRequest> >); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerFindOrderItemsRequestQueue, ec => { ec.Consumer(ctx.Resolve <FindOrderItemsRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerGetStatusHistoryForOrderItemRequestQueue, ec => { ec.Consumer(ctx.Resolve <GetStatusHistoryForOrderItemConsumer>); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetPrimaerdatenReportRecordsRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <GetPrimaerdatenReportRecordsRequest> >); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerFindOrderingHistoryForVeRequestQueue, ec => { ec.Consumer(ctx.Resolve <FindOrderHistoryForVeConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerGetOrderingRequestQueue, ec => { ec.Consumer(ctx.Resolve <GetOrderingRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerUpdateOrderDetailRequestQueue, ec => { ec.Consumer(ctx.Resolve <UpdateOrderDetailRequestConsumer>); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(AddToBasketCustomRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <AddToBasketCustomRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(RemoveFromBasketRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <RemoveFromBasketRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateCommentRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateCommentRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateBenutzungskopieRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateBenutzungskopieRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateBewilligungsDatumRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateBewilligungsDatumRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateReasonRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateReasonRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(OrderCreationRequest)), ec => { ec.Consumer(ctx.Resolve <CreateOrderFromBasketRequestConsumer>); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetBasketRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <GetBasketRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetOrderingsRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <GetOrderingsRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(IsUniqueVeInBasketRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <IsUniqueVeInBasketRequest> >); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetDigipoolRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <GetDigipoolRequest> >); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusAushebungBereitRequestQueue, ec => { ec.Consumer(ctx.Resolve <SetStatusAushebungBereitConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusDigitalisierungExternRequestQueue, ec => { ec.Consumer(ctx.Resolve <SetStatusDigitalisierungExternConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusDigitalisierungAbgebrochenRequestQueue, ec => { ec.Consumer(ctx.Resolve <SetStatusDigitalisierungAbgebrochenConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusZumReponierenBereitRequestQueue, ec => { ec.Consumer(ctx.Resolve <SetStatusZumReponierenBereitConsumer>); }); cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateDigipoolRequest)), ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateDigipoolRequest> >); }); cfg.ReceiveEndpoint(BusConstants.EntscheidFreigabeHinterlegenRequestQueue, ec => { ec.Consumer(ctx.Resolve <EntscheidFreigabeHinterlegenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.EntscheidGesuchHinterlegenRequestQueue, ec => { ec.Consumer(ctx.Resolve <EntscheidGesuchHinterlegenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.InVorlageExportierenRequestQueue, ec => { ec.Consumer(ctx.Resolve <InVorlageExportierenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.ReponierenRequestQueue, ec => { ec.Consumer(ctx.Resolve <SetStatusZumReponierenBereitConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AbschliessenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AbschliessenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AbbrechenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AbbrechenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.ZuruecksetzenRequestQueue, ec => { ec.Consumer(ctx.Resolve <ZuruecksetzenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AuftraegeAusleihenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AuftraegeAusleihenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AushebungsauftraegeDruckenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AushebungsauftraegeDruckenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.RecalcIndivTokens, ec => { ec.Consumer(ctx.Resolve <RecalcIndivTokensConsumer>); }); cfg.ReceiveEndpoint(BusConstants.DigitalisierungAusloesenRequestQueue, ec => { ec.Consumer(ctx.Resolve <DigitalisierungAusloesenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.DigitalisierungsAuftragErledigtEvent, ec => { ec.Consumer(ctx.Resolve <DigitalisierungsAuftragErledigtConsumer>); ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerArchiveRecordUpdatedEventQueue, ec => { ec.Consumer(ctx.Resolve <ArchiveRecordUpdatedConsumer>); ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy); }); cfg.ReceiveEndpoint(BusConstants.DigitalisierungsAuftragErledigtEventError, ec => { ec.Consumer(ctx.Resolve <DigitalisierungsAuftragErledigtErrorConsumer>); }); cfg.ReceiveEndpoint(BusConstants.BenutzungskopieAuftragErledigtEvent, ec => { ec.Consumer(ctx.Resolve <BenutzungskopieAuftragErledigtConsumer>); // Wenn Vecteur meldet, dass Auftrag erledigt ist, kann es sein, dass die Daten eventuell noch nicht in den SFTP hochgeladen wurden. // Der Consumer löst in diesem Fall eine Exception aus. Durch den Retry versuchen wir es noch ein paar mal #if DEBUG ec.UseRetry(retryPolicy => retryPolicy.Interval(5, TimeSpan.FromSeconds(2))); #else ec.UseRetry(retryPolicy => retryPolicy.Interval(10, TimeSpan.FromMinutes(30))); #endif }); cfg.ReceiveEndpoint(BusConstants.BenutzungskopieAuftragErledigtEventError, ec => { ec.Consumer(ctx.Resolve <BenutzungskopieAuftragErledigtErrorConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerAssetReadyEventQueue, ec => { ec.Consumer(ctx.Resolve <AssetReadyConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerMarkOrderAsFaultedQueue, ec => { ec.Consumer(ctx.Resolve <IConsumer <MarkOrderAsFaultedRequest> >); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerResetFaultedOrdersQueue, ec => { ec.Consumer(ctx.Resolve <IConsumer <ResetAufbereitungsfehlerRequest> >); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerMahnungVersendenRequestQueue, ec => { ec.Consumer(ctx.Resolve <MahnungVersendenRequestConsumer>); }); cfg.ReceiveEndpoint(BusConstants.OrderManagerErinnerungVersendenRequestQueue, ec => { ec.Consumer(ctx.Resolve <ErinnerungVersendenRequestConsumer>); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); }); containerBuilder.Register(CreateFindArchiveRecordRequestClient); containerBuilder.Register(CreateRegisterPrepareAssetClient); var container = containerBuilder.Build(); bus = container.Resolve <IBusControl>(); bus.Start(); recalcTermineListener = new RecalcTermineListener(container.Resolve <IOrderDataAccess>()); recalcTermineListener.Start(); Log.Information("Order service started"); }
/// <summary> /// Starts the Asset Service. /// Called by the service host when the service is started. /// </summary> public async Task Start() { Log.Information("Asset service is starting"); EnsurePasswordSeedIsConfigured(); var helper = new ParameterBusHelper(); // Configure Bus BusConfigurator.ConfigureBus(builder, MonitoredServices.AssetService, (cfg, ctx) => { cfg.ReceiveEndpoint(BusConstants.AssetManagerExtractFulltextMessageQueue, ec => { ec.Consumer(ctx.Resolve <ExtractFulltextPackageConsumer>); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerTransformAssetMessageQueue, ec => { ec.Consumer(ctx.Resolve <TransformPackageConsumer>); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerPrepareForRecognition, ec => { ec.Consumer(ctx.Resolve <PrepareForRecognitionConsumer>); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerPrepareForTransformation, ec => { ec.Consumer(ctx.Resolve <PrepareForTransformationConsumer>); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.WebApiDownloadAssetRequestQueue, ec => { ec.Consumer(ctx.Resolve <DownloadAssetConsumer>); }); cfg.ReceiveEndpoint(BusConstants.WebApiGetAssetStatusRequestQueue, ec => { ec.Consumer(ctx.Resolve <GetAssetStatusConsumer>); }); cfg.ReceiveEndpoint(BusConstants.WebApiPrepareAssetRequestQueue, ec => { ec.Consumer(ctx.Resolve <PrepareAssetConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerAssetReadyEventQueue, ec => { ec.Consumer(ctx.Resolve <AssetReadyConsumer>); // Retry or we have the situation where the job is not marked as terminated in the DB. ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerSchdeduleForPackageSyncMessageQueue, ec => { ec.Consumer(ctx.Resolve <ScheduleForPackageSyncConsumer>); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue, ec => { ec.Consumer(ctx.Resolve <UpdatePrimaerdatenAuftragStatusConsumer>); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); helper.SubscribeAllSettingsInAssembly(Assembly.GetAssembly(typeof(Engine.Asset.AssetPreparationEngine)), cfg); }); builder.Register(CreateDoesExistInCacheRequestClient); builder.Register(CreateJobInitRequestClient); builder.Register(CreateSupportedFileTypesRequestClient); builder.Register(CreateDocumentConversionRequestClient); builder.Register(CreateDocumentExtractionRequestClient); builder.Register(CreateFindArchiveRecordRequestClient); container = builder.Build(); scheduler = await SchedulerConfigurator.Configure(container); bus = container.Resolve <IBusControl>(); bus.Start(); // Start the timer Log.Verbose("Starting scheduler"); await scheduler.Start(); Log.Information("Asset service started"); }
/// <summary> /// Starts the Asset Service. /// Called by the service host when the service is started. /// </summary> public async Task Start() { Log.Information("Asset service is starting"); scheduler = await SchedulerConfigurator.Configure(kernel); EnsurePasswordSeedIsConfigured(); // Configure Bus var helper = new ParameterBusHelper(); bus = BusConfigurator.ConfigureBus(MonitoredServices.AssetService, (cfg, host) => { cfg.ReceiveEndpoint(BusConstants.AssetManagerExtractFulltextMessageQueue, ec => { ec.Consumer(() => kernel.Get <ExtractFulltextPackageConsumer>()); ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerTransformAssetMessageQueue, ec => { ec.Consumer(() => kernel.Get <TransformPackageConsumer>()); BusConfigurator.SetPrefetchCountForEndpoint(ec); }); cfg.ReceiveEndpoint(BusConstants.WebApiDownloadAssetRequestQueue, ec => { ec.Consumer(() => kernel.Get <DownloadAssetConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.WebApiGetAssetStatusRequestQueue, ec => { ec.Consumer(() => kernel.Get <GetAssetStatusConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.WebApiPrepareAssetRequestQueue, ec => { ec.Consumer(() => kernel.Get <PrepareAssetConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerAssetReadyEventQueue, ec => { ec.Consumer(() => kernel.Get <AssetReadyConsumer>()); // Retry or we have the situation where the job is not marked as terminated in the DB. ec.UseRetry(retryPolicy => retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5))); }); cfg.ReceiveEndpoint(BusConstants.MonitoringAbbyyOcrTestQueue, ec => { ec.Consumer(() => kernel.Get <AbbyyOcrTestConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerSchdeduleForPackageSyncMessageQueue, ec => { ec.Consumer(() => kernel.Get <ScheduleForPackageSyncConsumer>()); }); cfg.ReceiveEndpoint(BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue, ec => { ec.Consumer(() => kernel.Get <UpdatePrimaerdatenAuftragStatusConsumer>()); }); helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); cfg.UseSerilog(); }); // Add the bus instance to the IoC container kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope(); kernel.Bind <IRequestClient <DoesExistInCacheRequest, DoesExistInCacheResponse> >().ToMethod(CreateDoesExistInCacheRequestClient); kernel.Bind <IRequestClient <JobInitRequest, JobInitResult> >().ToMethod(CreateJobInitRequestClient); kernel.Bind <IRequestClient <SupportedFileTypesRequest, SupportedFileTypesResponse> >().ToMethod(CreateSupportedFileTypesRequestClient); kernel.Bind <IRequestClient <ConversionStartRequest, ConversionStartResult> >().ToMethod(CreateDocumentConversionRequestClient); kernel.Bind <IRequestClient <ExtractionStartRequest, ExtractionStartResult> >().ToMethod(CreateDocumentExtractionRequestClient); kernel.Bind <IRequestClient <FindArchiveRecordRequest, FindArchiveRecordResponse> >().ToMethod(CreateFindArchiveRecordRequestClient); bus.Start(); // Start the timer Log.Verbose("Starting scheduler"); await scheduler.Start(); Log.Information("Asset service started"); }