Пример #1
0
 public ActionResult Edit(Site model)
 {
     if (!ModelState.IsValid) {
         ModelState.AddModelError("", "表单验证失败。");
         return View(model);
     }
     siteCollection.Save(model);
     TaskQueue.Instance.SiteTimerReBuild();
     return RedirectToAction("Index");
 }
Пример #2
0
 public static void SiteInit()
 {
     var repo = DependencyResolver.Current.GetService(typeof(IMongoRepo<Site>)) as MongoRepo<Site>;
     if (!repo.Collection.AsQueryable<Site>().Any(d => d.Name == "douban")) {
         var douban = new Site {
             Name = "douban",
             Act = (int)eAct.Normal,
             GrabInterval = 10,
             Link = "http://www.douban.com"
         };
         repo.Collection.Insert(douban);
     }
     if (!repo.Collection.AsQueryable<Site>().Any(d => d.Name == "imdb")) {
         var imdb = new Site {
             Name = "imdb",
             Act = (int)eAct.Normal,
             GrabInterval = 10,
             Link = "http://www.imdb.com"
         };
         repo.Collection.Insert(imdb);
     }
 }
Пример #3
0
 private void ProcessTesk(Site site, Agent agent)
 {
     var task = TaskQueue.tasks.Where(d => d.Status == eTaskStatus.Standby && d.Site == site.Name).FirstOrDefault();//取出待执行的第一条任务
     if (task != null) {//取出任务后
         task.Status = eTaskStatus.Executing;//改变任务状态为执行中,以免重复执行
         task.HandlerAgent = agent.Name;
         task.HandlerTime = DateTime.Now;
         Clients.Client(agent.ConnectionId).castTesk(task);//将任务推送给代理端
         BroadcastRanderTask();
     } else {
         var executingTask = TaskQueue.tasks.Where(d => d.Status == eTaskStatus.Executing && d.Site == site.Name).OrderBy(d => d.HandlerTime).FirstOrDefault();
         if (executingTask != null && (DateTime.Now - executingTask.HandlerTime).TotalMinutes > 2) {
             executingTask.HandlerAgent = agent.Name;
             executingTask.HandlerTime = DateTime.Now;
             Clients.Client(agent.ConnectionId).castTesk(executingTask);
             BroadcastRanderTask();
         }
     }
 }