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));
     }
 }
Esempio n. 5
0
        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));
            }
        }
Esempio n. 8
0
        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));
            }
        }