Exemplo n.º 1
0
        /**
         * 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);
        }
Exemplo n.º 2
0
 /**
  * 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);
 }