static void Main(string[] args) { try { LoggerFactory.ConfigureNLog(Configuration["NLog:Configuration"]); IConfiguration rabbitConf = BuildConfiguration(Configuration["RabbitMQ:Configuration"]); QueueReciver queueReciver = new QueueReciverBuilder() .Logger(LoggerFactory.CreateLogger <QueueReciver>()) .HostName(rabbitConf["HostName"]) .QueueName(rabbitConf["QueueName"]) .Durable(bool.Parse(rabbitConf["Durable"])) .Exclusive(bool.Parse(rabbitConf["Exclusive"])) .AutoDelete(bool.Parse(rabbitConf["AutoDelete"])) .Arguments(null) .Build(); using (queueReciver) { queueReciver.Subscribe(QueueMessageHandler.OnNext, () => Console.WriteLine("On Complete")); queueReciver.StartReciving(); } } catch (Exception e) { Console.WriteLine(e); } }
static async Task Main(string[] args) { try { var logFactory = new NLogLoggerFactory(); logFactory.ConfigureNLog(Configuration["NLog:Configuration"]); IConfiguration rabbitConf = BuildConfiguration(Configuration["RabbitMQ:Configuration"]); QueueSender queueSender = new QueueSenderBuilder() .Logger(logFactory.CreateLogger <QueueSender>()) .HostName(rabbitConf["HostName"]) .QueueName(rabbitConf["QueueName"]) .Durable(bool.Parse(rabbitConf["Durable"])) .Exclusive(bool.Parse(rabbitConf["Exclusive"])) .AutoDelete(bool.Parse(rabbitConf["AutoDelete"])) .Arguments(null) .Build(); EnglishWikiFilter filter = new EnglishWikiFilter(); using (queueSender) using (ICrawler crawler = new HttpLinksCrawler(filter.AcceptUri, logFactory.CreateLogger <HttpLinksCrawler>())) { crawler.Subscribe(queueSender.SendToQueue, () => queueSender.Dispose()); await crawler.StartCrawling(Configuration["BaseUri"], Configuration["StartUri"]); } } catch (Exception e) { Console.WriteLine($"Exeption: {e.Message}; Trace: {e.StackTrace}"); } }