private void ReactivateTask(OptionsPlayTask optionsPlayTask, SchedulerQueue schedulerQueue) { if (optionsPlayTask != null) { try { SchedulerQueue newQueue = optionsPlayTask.CreateSchedulerQueue(); _schedulerCoreService.CreateQueueTask(newQueue, true); } catch (Exception newQueueException) { Logger.FatalError(string.Format(LogMessages.Error_FailedSchedulerJob, AppConfigManager.Environment, schedulerQueue.TaskType), newQueueException); _schedulerCoreService.LogTaskException(schedulerQueue.TaskType, newQueueException); } } }
// See http://www.cronmaker.com/ //private const string CronString = "0 {1} {0} ? * MON,TUE,WED,THU,FRI *"; // {0} - hours, {1} - minutes private void UpdateTasksQueue() { ISchedulerCoreService schedulerCoreService = ObjectFactory.GetInstance <ISchedulerCoreService>(); List <OptionsPlayTask> syrahTraderTasks = new List <OptionsPlayTask>(); //Get all tasks from current assembly Type baseType = typeof(OptionsPlayTask); foreach (Type type in Assembly.GetAssembly(baseType).GetTypes()) { if (baseType.IsAssignableFrom(type) && type != baseType) { try { if (type != null) { Logger.Debug(type.ToString()); OptionsPlayTask instance = (OptionsPlayTask)ObjectFactory.GetInstance(type); syrahTraderTasks.Add(instance); } } catch (Exception ex) { Logger.Error("Error ", ex); } } } //Update db for tasks foreach (OptionsPlayTask task in syrahTraderTasks) { Logger.Debug(task.TaskType.ToString()); SchedulerQueue schedulerQueue = task.CreateSchedulerQueue(); schedulerCoreService.CreateQueueTask(schedulerQueue, true); Logger.Debug(task.TaskType.ToString()); } }