private static void RunBotEngine() { _botEngine = _container.Resolve <BotEngine>(); _botEngine.Start(); JobManager.Initialize(); JobManager.AddJob(() => _container.Resolve <IStatService>().Publish(), (s) => s.ToRunEvery(1).Days().At(00, 00)); Console.CancelKeyPress += (o, e) => { _botEngine.Stop(); _container.Dispose(); WaitHandle.Set(); }; WaitHandle.WaitOne(); }
private static void Main() { var engine = new BotEngine(); engine.Start(); Console.WriteLine("Bot is running. Press any key to stop him!"); while (true) { if (Console.KeyAvailable) { Console.ReadKey(); Console.WriteLine("Stopping..."); engine.Stop(); return; } Thread.Sleep(100); Application.DoEvents(); } }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { try { using var scope = scopeFactory.CreateScope(); botEngine = scope.ServiceProvider.GetRequiredService <BotEngine>(); grabber = scope.ServiceProvider.GetRequiredService <Grabber>(); var dota2DbContext = scope.ServiceProvider.GetRequiredService <Dota2DbContext>(); await dota2DbContext.Database.MigrateAsync(cancellationToken : stoppingToken); botEngine.Start(stoppingToken); grabber.Start(stoppingToken); await Task.Delay(Timeout.Infinite, stoppingToken); } catch (Exception ex) { Console.WriteLine(ex); await Task.CompletedTask; } }