コード例 #1
0
        public StopServiceActor(IOptions <StopServicesConfiguration> options,
                                ILogger <StopServiceActor> logger,
                                IServiceControllerService serviceControllerService)
        {
            Console.WriteLine("Hello");

            //var logger = loggerFactory.CreateLogger(this.GetType().Name);
            logger.LogDebug($"In ctor()");
            // get the ball rolling - note the exact same message is sent every single time here
            Context.System.Scheduler.ScheduleTellRepeatedly(
                TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(30),
                Self, new StopServiceMessage(), Self);

            Receive <StopServiceMessage>((m) =>
            {
                logger.LogDebug($"Received StopServiceMessage {m.CorrelationId}");
                foreach (var serviceToStop in options.Value.ServicesToStop)
                {
                    try
                    {
                        serviceControllerService.Stop(serviceToStop.ServiceName);
                    }
                    catch (Exception e)
                    {
                        logger.LogWarning($"Error stopping service {serviceToStop} - {e}");
                        Console.WriteLine(e);
                    }
                }
                logger.LogDebug($"Processed {m.CorrelationId}");
            });
        }
コード例 #2
0
        public int CycleInSeconds => 0; //_options.Value.

        public void Execute()
        {
            foreach (var serviceToStop in _options.Value.ServicesToStop)
            {
                try
                {
                    _serviceControllerService.Stop(serviceToStop.ServiceName);
                }
                catch (Exception e)
                {
                    _logger.LogWarning($"Error stopping service {serviceToStop} - {e}");
                    Console.WriteLine(e);
                }
            }
        }