/** * Implements {@link TaskCollector#getTasks()}. */ public TaskTable GetTasks() { TaskTable ret = new TaskTable(); lock (files) { int size = files.Count; for (int i = 0; i < size; i++) { FileInfo f = (FileInfo)files[i]; TaskTable aux = null; try { aux = CronParser.parse(f); } catch (IOException e) { Exception e1 = new Exception("Cannot parse cron file: " + f.FullName, e); Console.WriteLine(e1.ToString()); } if (aux != null) { int auxSize = aux.Size(); for (int j = 0; j < auxSize; j++) { ret.Add(aux.GetSchedulingPattern(j), aux.GetTask(j)); } } } } return(ret); }
/** * Overrides {@link Thread#run()}. */ public void Run() { //outer: for (int i = 0; i < collectors.Length; i++) { TaskTable taskTable = collectors[i].GetTasks(); int size = taskTable.Size(); for (int j = 0; j < size; j++) { //if (cThread.isInterrupted()) { // goto outer; //} SchedulingPattern pattern = taskTable.GetSchedulingPattern(j); if (pattern.Match(scheduler.getTimeZone(), referenceTimeInMillis)) { Task task = taskTable.GetTask(j); scheduler.spawnExecutor(task); } } } // Notifies completed. scheduler.notifyLauncherCompleted(this); }