public bool CreateTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters) { VcssTaskCanScheduleResult canSchedule = VcssTaskCanScheduleResult.EMPTY; string parametersStr = ""; if (parameters != null) { foreach (var item in parameters) { parametersStr += item + ";"; } } try { VcssTaskManagerService.Log(vcssTaskInfo.name, "Last Updated->", vcssTaskInfo.last_updated, "Create", "", DateTime.Now); canSchedule = this.CanSchedule(vcssTaskInfo); if (canSchedule == VcssTaskCanScheduleResult.Schedule) { this.ScheduleTask(vcssTaskInfo, parameters); return(true); } else { VcssTaskManagerService.Log(vcssTaskInfo.name, "Last Updated-> Params:" + parametersStr, vcssTaskInfo.last_updated, "Creating", canSchedule.ToString(), DateTime.Now); return(false); } } catch (Exception ex) { VcssTaskManagerService.Log(vcssTaskInfo.name, "Last Updated-> Params:" + parametersStr + " -> CanSchedule: " + canSchedule.ToString(), vcssTaskInfo.last_updated, "Create ERROR", ex.Message, DateTime.Now); return(false); } }
public static DateTime GetLastVcssTaskScheduledTime(VcssTaskInfoModel vcssTaskInfo) { using (ctaDBEntities entities = new ctaDBEntities()) { return(entities.VcssTasks.Where(t => t.vcss_task_info_id == vcssTaskInfo.Id).OrderByDescending(t => t.Id).Select(t => t.scheduled_time).FirstOrDefault()); } }
protected override VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); if (marketTime.TimeOfDay.Hours == 5 && marketTime.DayOfWeek != DayOfWeek.Saturday && marketTime.DayOfWeek != DayOfWeek.Sunday && !HolidayService.IsHoliday(vcssTaskInfo.market_id.Value, marketTime)) { return(VcssTaskCanScheduleResult.Schedule); } return(VcssTaskCanScheduleResult.InvalidTime); }
protected override VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); DateTime lastScheduled = VcssTaskManagerService.GetLastVcssTaskScheduledTime(vcssTaskInfo).AddMinutes(vcssTaskInfo.step); if (marketTime >= lastScheduled) { return(VcssTaskCanScheduleResult.Schedule); } return(VcssTaskCanScheduleResult.InvalidTime); }
protected override void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters) { Dictionary <string, int> symbols = StockService.GetStocks().Where(s => s.market_id == 2 && s.active).ToDictionary(s => s.symbol + ".US", s => s.Id); using (WebClient web = new WebClient()) { string quotesData = web.DownloadString(String.Format(vcssTaskInfo.url, symbols.Keys.First(), vcssTaskInfo.auth_token, String.Join(",", symbols.Keys))); DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); VcssTaskManagerService.ScheduleTask(vcssTaskInfo.Id, quotesData, marketTime); } }
public static void UpdateExecutedTime(VcssTaskInfoModel vcssTaskInfo) { using (ctaDBEntities entities = new ctaDBEntities()) { VcssTaskInfo taskInfo = entities.VcssTaskInfoes.Where(t => t.Id == vcssTaskInfo.Id).FirstOrDefault(); if (taskInfo != null) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); taskInfo.last_updated = marketTime; entities.SaveChanges(); } } }
protected override void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters) { int symbolId = int.Parse(parameters[0]); DateTime from = DateTime.Parse(parameters[1]); DateTime to = DateTime.Parse(parameters[2]); string symbol = StockService.GetStockSymbol(symbolId).symbol; using (WebClient web = new WebClient()) { string data = web.DownloadString(String.Format(vcssTaskInfo.url, symbol, from.ToString("yyyy-MM-dd"), to.ToString("yyyy-MM-dd"), vcssTaskInfo.auth_token)); data += "#" + symbolId; DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); VcssTaskManagerService.ScheduleTask(vcssTaskInfo.Id, data, marketTime); } }
protected override void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(vcssTaskInfo.url); request.Headers["Authorization"] = vcssTaskInfo.auth_token; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream2 = response.GetResponseStream()) { using (StreamReader reader2 = new StreamReader(stream2)) { string data = reader2.ReadToEnd(); DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); VcssTaskManagerService.ScheduleTask(vcssTaskInfo.Id, data, marketTime); } } }
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 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)); } }
protected override void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters) { DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset); VcssTaskManagerService.ScheduleTask(vcssTaskInfo.Id, "", marketTime); }
protected abstract void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters);
protected abstract VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo);
protected override VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo) { return(VcssTaskCanScheduleResult.Schedule); }