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); }
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(); } } }