Example #1
0
        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);
        }
Example #4
0
        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();
         }
     }
 }
Example #7
0
        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));
            }
        }
Example #12
0
        protected override void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters)
        {
            DateTime marketTime = DateTime.UtcNow.AddHours(vcssTaskInfo.Market.utc_offset);

            VcssTaskManagerService.ScheduleTask(vcssTaskInfo.Id, "", marketTime);
        }
Example #13
0
 protected abstract void ScheduleTask(VcssTaskInfoModel vcssTaskInfo, params string[] parameters);
Example #14
0
 protected abstract VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo);
Example #15
0
 protected override VcssTaskCanScheduleResult CanSchedule(VcssTaskInfoModel vcssTaskInfo)
 {
     return(VcssTaskCanScheduleResult.Schedule);
 }