public static List <VcssTaskModel> GetVcssTasksToExecute(VcssTaskInfoEnum vcssTaskInfoId) { using (ctaDBEntities entities = new ctaDBEntities()) { return(entities.VcssTasks .Include(t => t.VcssTaskInfo) .Include(t => t.VcssTaskInfo.Market) .Where(t => t.vcss_task_info_id == (int)vcssTaskInfoId) .Select(t => new VcssTaskModel() { Id = t.Id, data = t.data, scheduled_time = t.scheduled_time, vcss_task_info_id = t.vcss_task_info_id, VcssTaskInfo = new VcssTaskInfoModel() { auth_token = t.VcssTaskInfo.auth_token, last_updated = t.VcssTaskInfo.last_updated, market_id = t.VcssTaskInfo.market_id, name = t.VcssTaskInfo.name, step = t.VcssTaskInfo.step, url = t.VcssTaskInfo.url, Id = t.VcssTaskInfo.Id, Market = new MarketModel() { Id = t.VcssTaskInfo.Market.Id, name = t.VcssTaskInfo.Market.name, utc_offset = t.VcssTaskInfo.Market.utc_offset, work_hours = t.VcssTaskInfo.Market.work_hours } } }) .ToList <VcssTaskModel>()); } }
public static VcssTaskInfoModel GetVcssTask(VcssTaskInfoEnum vcssTaskInfoId) { using (ctaDBEntities entities = new ctaDBEntities()) { return(entities.VcssTaskInfoes .Include(t => t.Market) .Where(t => t.Id == (int)vcssTaskInfoId) .Select(t => new VcssTaskInfoModel() { auth_token = t.auth_token, last_updated = t.last_updated, market_id = t.market_id, name = t.name, step = t.step, url = t.url, Id = t.Id, Market = new MarketModel() { Id = t.Market.Id, name = t.Market.name, utc_offset = t.Market.utc_offset, work_hours = t.Market.work_hours } }).FirstOrDefault()); } }
public string ExecuteTask(VcssTaskInfoEnum vcssTaskInfoId) { try { List <VcssTaskModel> tasks = VcssTaskManagerService.GetVcssTasksToExecute(vcssTaskInfoId); foreach (VcssTaskModel task in tasks) { try { VcssTaskManager taskManager = VcssTaskManager.GetTaskSchedulerInstance((VcssTaskInfoEnum)task.vcss_task_info_id); bool executed = taskManager.RunTask(task); if (vcssTaskInfoId == VcssTaskInfoEnum.DailyTechnicalReportARG) { break; } } catch (Exception ex) { VcssTaskManagerService.Log(task.VcssTaskInfo.name, task.data, task.scheduled_time, "Running", ex.Message, DateTime.Now); } } return("Task Executed"); } catch (Exception ex) { VcssTaskManagerService.Log(vcssTaskInfoId.ToString(), "ServerTime", DateTime.Now, "Scheduling", ex.Message, DateTime.Now); return("Task Errored"); } }
public ActionResult ScheduleTask(VcssTaskInfoEnum vcssTaskInfoId) { try { VcssTaskManager taskManager = VcssTaskManager.GetTaskSchedulerInstance(vcssTaskInfoId); VcssTaskInfoModel taskInfo = VcssTaskManagerService.GetVcssTask(vcssTaskInfoId); bool scheduled = taskManager.CreateTask(taskInfo); return(Json(new VcssScheduleTaskResult() { Success = scheduled, Next = taskInfo.step, TaskInfoId = vcssTaskInfoId }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { VcssTaskManagerService.Log(vcssTaskInfoId.ToString(), "ServerTime", DateTime.Now, "Scheduling", ex.Message, DateTime.Now); return(Json(new VcssScheduleTaskResult() { Success = false, Next = 5, TaskInfoId = vcssTaskInfoId }, JsonRequestBehavior.AllowGet)); } }
public static VcssTaskManager GetTaskSchedulerInstance(VcssTaskInfoEnum vcssTaskInfoId) { switch (vcssTaskInfoId) { case VcssTaskInfoEnum.IntradiaryBCBA: return(new VcssTaskManagerIntradiaryBCBA()); case VcssTaskInfoEnum.AuthTokenBCBA: return(new VcssTaskManagerAuthTokenBCBA()); case VcssTaskInfoEnum.IntradiaryBCBAINDEX: return(new VcssTaskManagerIntradiaryBCBAINDEX()); case VcssTaskInfoEnum.IntradiaryNYSE: return(new VcssTaskManagerIntradiaryNYSE()); case VcssTaskInfoEnum.IntradiaryNASDAQ: return(new VcssTaskManagerIntradiaryNASDAQ()); case VcssTaskInfoEnum.HistoryNASDAQ: return(new VcssTaskManagerHistory()); case VcssTaskInfoEnum.HistoryNYSE: return(new VcssTaskManagerHistory()); case VcssTaskInfoEnum.ClearIntradiaryBCBA: return(new VcssTaskManagerClearIntradiary()); case VcssTaskInfoEnum.ClearIntradiaryNASDAQ: return(new VcssTaskManagerClearIntradiary()); case VcssTaskInfoEnum.ClearIntradiaryNYSE: return(new VcssTaskManagerClearIntradiary()); case VcssTaskInfoEnum.DailyTechnicalReportARG: return(new VcssTaskManagerDailyTechnicalReportARG()); } return(null); }
public ActionResult ScheduleHistoryTask(int stockid, DateTime startdate, DateTime enddate) { VcssTaskInfoEnum vcssTaskInfoId = VcssTaskInfoEnum.HistoryNASDAQ; try { VcssTaskManager taskManager = VcssTaskManager.GetTaskSchedulerInstance(vcssTaskInfoId); VcssTaskInfoModel taskInfo = VcssTaskManagerService.GetVcssTask(vcssTaskInfoId); bool scheduled = taskManager.CreateTask(taskInfo, stockid.ToString(), startdate.ToString("yyyy-MM-dd"), enddate.ToString("yyyy-MM-dd")); return(Json(new VcssScheduleTaskResult() { Success = scheduled, TaskInfoId = vcssTaskInfoId }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { VcssTaskManagerService.Log(vcssTaskInfoId.ToString(), "ServerTime", DateTime.Now, "Scheduling", ex.Message, DateTime.Now); return(Json(new VcssScheduleTaskResult() { Success = false, TaskInfoId = vcssTaskInfoId, Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ScheduleDailyTechnicalReportTask(string batch) { VcssTaskInfoEnum vcssTaskInfoId = VcssTaskInfoEnum.DailyTechnicalReportARG; try { VcssTaskManager taskManager = VcssTaskManager.GetTaskSchedulerInstance(vcssTaskInfoId); VcssTaskInfoModel taskInfo = VcssTaskManagerService.GetVcssTask(vcssTaskInfoId); bool scheduled = taskManager.CreateTask(taskInfo, batch); return(Json(new VcssScheduleTaskResult() { Success = scheduled, TaskInfoId = vcssTaskInfoId }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { VcssTaskManagerService.Log(vcssTaskInfoId.ToString(), "ServerTime", DateTime.Now, "Scheduling", ex.Message, DateTime.Now); return(Json(new VcssScheduleTaskResult() { Success = false, TaskInfoId = vcssTaskInfoId, Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }
private void SetupVcssTaskManagerTrigger(DateTime keyExpirationTime, Action <string, object, CacheItemRemovedReason> keyExpirationFunc, VcssTaskInfoEnum taskId, string action, string batch) { string cacheKey = Enum.GetName(typeof(VcssTaskInfoEnum), taskId) + action + batch; string blockingCacheKey = Enum.GetName(typeof(VcssTaskInfoEnum), taskId) + ((action == "EXEC") ? "SCHE" : "EXEC") + batch; if (HttpContext.Current.Cache[blockingCacheKey] == null && HttpContext.Current.Cache[cacheKey] == null) { CookieExpirationValue cookieExpirationValue = new CookieExpirationValue() { TaskId = taskId, Action = action, Batch = batch }; HttpContext.Current.Cache.Add(cacheKey, cookieExpirationValue, null, keyExpirationTime, Cache.NoSlidingExpiration, CacheItemPriority.Normal, new CacheItemRemovedCallback(keyExpirationFunc)); } }