Пример #1
0
 public void run() {
   LOGGER.info("Running tasks");
   /*
    * while (true) { Task task = getTask(); IDataPlugin plugin =
    * task.getPlugin(); Settings settings = task.getSettings();
    * plugin.doJob(_dataEngine, _environment, settings);
    */
   TaskInfo taskInfo = null;
   for (ITask task : _tasks) {
     try {
       taskInfo = ((Task) task).getInfo();
       LOGGER.info("task: " + taskInfo.getName());
       ISettings settings = task.getSettings();
       taskInfo.setStatus(TaskInfo.REALIZATION);
       // changing status
       taskInfo.save();
       _dbManager.commit();
       //
       // processing task
       //
       ILocalPlugin plugin = task.getPlugin();
       LOGGER.debug("plugin: " + plugin + " id: " + plugin.getInfo().getId());
       IResult result = plugin.doJob(getDataEngine(), _environment, settings);
       //
       // saving result of its execution
       //
       task.setResult(result);
       taskInfo.save();
       _dbManager.commit();
       //
       // if task was not processed correctly
       // exception is caught and shoul be handled here
       //
     } catch (Exception e) {
       LOGGER.fatal("TASK PROCESSING ERROR", e);
       try {
         taskInfo.setStatus(TaskInfo.EXCEPTION);
         taskInfo.save();
       } catch (Exception ex) {
         LOGGER.fatal("", ex);
       }
       _dbManager.commit();
     }
   }
 }