private static void BackgroundJobsPostStart(IAppConfiguration configuration) { var jobs = configuration.HasWorker ? new IJob[] { new LuceneIndexingJob( TimeSpan.FromMinutes(10), () => new EntitiesContext(configuration.SqlConnectionString, readOnly: true), timeout: TimeSpan.FromMinutes(2), location: configuration.LuceneIndexLocation) } : new IJob[] { // readonly: false workaround - let statistics background job write to DB in read-only mode since we don't care too much about losing that data new UpdateStatisticsJob(TimeSpan.FromMinutes(5), () => new EntitiesContext(configuration.SqlConnectionString, readOnly: false), timeout: TimeSpan.FromMinutes(5)), new LuceneIndexingJob( TimeSpan.FromMinutes(10), () => new EntitiesContext(configuration.SqlConnectionString, readOnly: true), timeout: TimeSpan.FromMinutes(2), location: configuration.LuceneIndexLocation) }; var jobCoordinator = new NuGetJobCoordinator(); _jobManager = new JobManager(jobs, jobCoordinator) { RestartSchedulerOnFailure = true }; _jobManager.Fail(e => ErrorLog.GetDefault(null).Log(new Error(e))); _jobManager.Start(); }
private static void BackgroundJobsPostStart(IAppConfiguration configuration) { var indexer = Container.Kernel.TryGet <IIndexingService>(); var jobs = new List <IJob>(); if (indexer != null) { indexer.RegisterBackgroundJobs(jobs, configuration); } if (!configuration.HasWorker) { jobs.Add( new UpdateStatisticsJob(TimeSpan.FromMinutes(5), () => new EntitiesContext(configuration.SqlConnectionString, readOnly: false), timeout: TimeSpan.FromMinutes(5))); } if (configuration.CollectPerfLogs) { jobs.Add(CreateLogFlushJob()); } if (jobs.AnySafe()) { var jobCoordinator = new NuGetJobCoordinator(); _jobManager = new JobManager(jobs, jobCoordinator) { RestartSchedulerOnFailure = true }; _jobManager.Fail(e => ErrorLog.GetDefault(null).Log(new Error(e))); _jobManager.Start(); } }
private static void BackgroundJobsPostStart(IAppConfiguration configuration) { var indexingJobFactory = DependencyResolver.Current.GetService <IIndexingJobFactory>(); var jobs = new List <IJob>(); if (indexingJobFactory != null) { indexingJobFactory.RegisterBackgroundJobs(jobs, configuration); } if (configuration.StorageType == StorageType.AzureStorage) { var cloudDownloadCountService = DependencyResolver.Current.GetService <IDownloadCountService>() as CloudDownloadCountService; if (cloudDownloadCountService != null) { // Perform initial refresh + schedule new refreshes every 15 minutes HostingEnvironment.QueueBackgroundWorkItem(_ => cloudDownloadCountService.RefreshAsync()); jobs.Add(new CloudDownloadCountServiceRefreshJob(TimeSpan.FromMinutes(15), cloudDownloadCountService)); } } if (jobs.AnySafe()) { var jobCoordinator = new NuGetJobCoordinator(); _jobManager = new JobManager(jobs, jobCoordinator) { RestartSchedulerOnFailure = true }; _jobManager.Fail(e => ErrorLog.GetDefault(null).Log(new Error(e))); _jobManager.Start(); } }
private static void BackgroundJobsPostStart(IAppConfiguration configuration) { var indexer = DependencyResolver.Current.GetService <IIndexingService>(); var jobs = new List <IJob>(); if (indexer != null) { indexer.RegisterBackgroundJobs(jobs, configuration); } if (!configuration.HasWorker) { jobs.Add( new UpdateStatisticsJob(TimeSpan.FromMinutes(5), () => new EntitiesContext(configuration.SqlConnectionString, readOnly: false), timeout: TimeSpan.FromMinutes(5))); } if (configuration.CollectPerfLogs) { jobs.Add(CreateLogFlushJob()); } if (configuration.StorageType == StorageType.AzureStorage) { var cloudDownloadCountService = DependencyResolver.Current.GetService <IDownloadCountService>() as CloudDownloadCountService; if (cloudDownloadCountService != null) { // Perform initial refresh + schedule new refreshes every 15 minutes HostingEnvironment.QueueBackgroundWorkItem(cancellationToken => cloudDownloadCountService.Refresh()); jobs.Add(new CloudDownloadCountServiceRefreshJob(TimeSpan.FromMinutes(15), cloudDownloadCountService)); } } if (jobs.AnySafe()) { var jobCoordinator = new NuGetJobCoordinator(); _jobManager = new JobManager(jobs, jobCoordinator) { RestartSchedulerOnFailure = true }; _jobManager.Fail(e => ErrorLog.GetDefault(null).Log(new Error(e))); _jobManager.Start(); } }