/// <summary> /// /// </summary> /// <returns></returns> public override string Execute() { var jobs = WebCrawlerConfig.GetConfigData(); var results = new List <CrawlerResults>(); foreach (var job in jobs) { if (job.RunIntervalType == WebCrawlJobConfig.ScheduleIntervalType.Inactive) { continue; } bool runJob = false; if (job.LastRunDate == null) { runJob = true; } else { switch (job.RunIntervalType) { case WebCrawlJobConfig.ScheduleIntervalType.Day: if (job.LastRunDate.Value.AddDays(job.RunInterval) <= DateTime.Now) { runJob = true; } break; case WebCrawlJobConfig.ScheduleIntervalType.Week: if (job.LastRunDate.Value.AddDays(job.RunInterval * 7) <= DateTime.Now) { runJob = true; } break; case WebCrawlJobConfig.ScheduleIntervalType.Month: if (job.LastRunDate.Value.AddMonths(job.RunInterval) <= DateTime.Now) { runJob = true; } break; } } if (runJob) { var result = RunCrawler(job); results.Add(result); job.LastRunDate = DateTime.Now; WebCrawlerConfig.SaveConfigData(job); } } if (results.Any()) { var str = new StringBuilder(); foreach (var result in results) { str.Append(string.Format("Web Crawl (Source ID: {0}) Finished. {1} pages crawled. Total Errors {2}. Duration ({3:00}:{4:00}:{5:00}).\n", result.SourceId, result.TotalCnt, result.ErrorCnt, result.Duration.Hours, result.Duration.Minutes, result.Duration.Seconds)); } return(str.ToString()); } return(""); }
public List <WebCrawlJobConfig> GetWebCrawlJobs() { return(WebCrawlerConfig.GetConfigData()); }
/// <summary> /// /// </summary> /// <param name="webCrawlJob"></param> /// <returns></returns> public ActionResult Save(WebCrawlJobConfig webCrawlJob) { WebCrawlerConfig.SaveConfigData(webCrawlJob); return(RedirectToAction("Index", "WebCrawlerAdmin")); }
/// <summary> /// /// </summary> /// <returns></returns> public ActionResult Delete(int sourceid) { WebCrawlerConfig.DeleteConfigData(sourceid); return(RedirectToAction("Index", "WebCrawlerAdmin")); }
/// <summary> /// /// </summary> /// <param name="sourceId"></param> /// <returns></returns> public ActionResult Update(int sourceId) { var job = WebCrawlerConfig.GetJobConfigData(sourceId); return(View("~/modules/MissionSearchEpi/UI/Views/WebCrawlerAdmin/add.cshtml", job)); }