Esempio n. 1
0
        private static void Main(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());             // можно в конфиг файле

            Trace.TraceInformation("Console Worker entry point called");

            var converters = new Dictionary <string, IFileProcessor>();

            converters["ToUpper"] = new ToUpperFileProcessor();

            ILifetimeAwareComponent <IFileProcessingWorker> app = AppComposition.CreateFileProcessingWorker(
                converters, ConfigurationManager.ConnectionStrings["redisConnectionString"].ConnectionString);

            using (app.LifetimeScope)
            {
                while (true)
                {
                    try
                    {
                        // нельзя использовать await здесь, метод должен быть блокирующимся
                        Task.Delay(10000).GetAwaiter().GetResult();
                        app.Service.DoWorkAsync().GetAwaiter().GetResult();
                    }
                    catch (Exception e)
                    {
                        Trace.TraceError("Ошибка обработки {0}", JsonConvert.SerializeObject(e));
                    }
                }
            }
        }
        private HttpConfiguration registerServices(HttpConfiguration config)
        {
            string configurationConnectionString =
                ConfigurationManager.ConnectionStrings["redisConnectionString"].ConnectionString;

            config.DependencyResolver =
                AppComposition.AssembleWebApiComponents(typeof(Startup).Assembly,
                                                        configurationConnectionString);

            return(config);
        }
Esempio n. 3
0
        public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.TraceInformation("AzureService.Worker entry point called");

            var converters = new Dictionary <string, IFileProcessor>();

            converters["ToUpper"] = new ToUpperFileProcessor();

            ILifetimeAwareComponent <IFileProcessingWorker> app = AppComposition.CreateFileProcessingWorker(
                converters, CloudConfigurationManager.GetSetting("redisConnectionString"));

            using (app.LifetimeScope)
            {
                while (true)
                {
                    // нельзя использовать await здесь, метод должен быть блокирующимся
                    Task.Delay(10000).GetAwaiter().GetResult();
                    app.Service.DoWorkAsync().GetAwaiter().GetResult();
                }
            }
        }