/// <summary> /// Start service. /// </summary> public void Start() { if (!File.Exists("config.json")) { Logger.Error("Configuration file \"config.json\" was not found in the application directory!"); return; } // configuration var configurationBuilder = new ConfigurationBuilder().AddJsonFile("config.json").Build(); var configuration = new Configuration.Configuration(); configurationBuilder.Bind(configuration); // do the dirty work foreach (var mailBox in configuration.MailBoxes) { var cancellationTokenSource = Scheduler.Interval(mailBox.Interval, () => { var mailBoxProcessor = new MailBoxProcessor(mailBox); try { mailBoxProcessor.Process(); } catch (Exception ex) { Logger.Error($"Could not process the MailBox {mailBox.Identifier}!", ex); } }); _cancellationTokenSources.Add(cancellationTokenSource); } }
public void Main(string[] args) { var runtimeConfig = new ConfigurationBuilder() .AddCommandLine(args) .Build(); var options = new Options(); runtimeConfig.Bind(options); var queueConfig = new ConfigurationBuilder(".") .AddJsonFile("queues.json") .Build() .GetSection(options.QueueType); var services = BuildServiceProvider(options, queueConfig); var logger = services.GetRequiredService<ILogger<Program>>(); var handlerFactory = services.GetRequiredService<IMessageHandlerFactory>(); var queueFactory = services.GetRequiredService<IMessageQueueFactory>(); var queue = queueFactory.Get(options.ListenTo); queue.Listen(msg => { var handler = handlerFactory.GetHandler(msg.Body.GetType()); handler.Handle(msg, queue); }); }
public void Main(string[] args) { var options = new Options(); var config = new ConfigurationBuilder() .AddCommandLine(args) .Build(); config.Bind(options); var type = Type.GetType(options.SocketType); var socket = _services.GetService(type) as AbstractSocket; socket.Start(options); Console.ReadLine(); }