Exemple #1
0
        private static void Run(IWebHostBuilder serviceHostBuilder)
        {
            using (var serviceHost = serviceHostBuilder.Build())
            {
                IConfiguration configuration = (IConfiguration)serviceHost.Services.GetService(typeof(IConfiguration));
                Globals.SetCulture(configuration.GetValue <string>("Culture"));
                Globals.SetFormatDateCulture(configuration.GetValue <string>("FormatDateCulture"));

                var taskRun = serviceHost.RunAsync();

                // Wait exit
                Console.CancelKeyPress += (sender, eventArgs) =>
                {
                    Trace.WriteLine("Received a stop notification, engine shutdown");

                    KilledGracefulInterceptor.Stop();

                    Trace.WriteLine("engine main service has stopped.");
                    eventArgs.Cancel = true;
                };

                taskRun.Wait();

                var taskStop = serviceHost.StopAsync();

                taskStop.Wait();
            }
        }
 public SubcriptionIncomingEvent(IFactoryBroker brokers, EngineGeneratorConfiguration configuration, WebEngineProvider provider, KilledGracefulInterceptor killed)
     : base("Service consume incoming event.")
 {
     _provider          = provider;
     _domainHeader      = configuration.EngineGeneratorModel.DomainHeader;
     Subscription       = brokers.CreateSubscription(configuration.EngineGeneratorModel.WorkflowQueue, context => Callback(context));
     _deadQueue         = brokers.CreatePublisher(configuration.EngineGeneratorModel.PublishDeadQueueWorkflow);
     _killed            = killed;
     _killed.StopAction = this.PrepareStop;
 }
Exemple #3
0
        /// <summary>
        /// IOC inject configuration because EngineConfigurationModel is registered in ioc by ExposeClassAttribute
        /// </summary>
        /// <param name="configuration"></param>
        public WebEngineProvider(EngineGeneratorConfiguration configuration, KilledGracefulInterceptor killer)
            : base(configuration)
        {
            this._killer            = killer;
            this._killer.StopAction = this.Stop;

            var domains = configuration.EngineConfiguration.Domains;

            if (domains != null)
            {
                foreach (EngineProviderConfiguration config in domains)
                {
                    this.Add(config.Domain, config.Path);
                }
            }
        }