public ActionResult Edit(Site model) { if (!ModelState.IsValid) { ModelState.AddModelError("", "表单验证失败。"); return View(model); } siteCollection.Save(model); TaskQueue.Instance.SiteTimerReBuild(); return RedirectToAction("Index"); }
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); } }
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(); } } }