@Override
  public void run() {
    ReportQueue.Item item = null;
    try {
      item = queue.pop();
    } catch (Exception e) {
      LOG.error("Failed to pop the queue of analysis reports", e);
    }
    if (item == null) {
      return;
    }

    ComputeEngineContainer computeEngineContainer = containerFactory.create(sqContainer, item);
    try {
      computeEngineContainer.process();
    } catch (Throwable e) {
      LOG.error(
          String.format(
              "Failed to process analysis report %d of project %s",
              item.dto.getId(), item.dto.getProjectKey()),
          e);
    } finally {
      computeEngineContainer.cleanup();

      removeSilentlyFromQueue(item);
    }
  }
 @Override
 public void process(CeTask task) {
   ComputeEngineContainer ceContainer = containerFactory.create(serverContainer, task);
   try {
     ceContainer.getComponentByType(ComputationStepExecutor.class).execute();
   } finally {
     ceContainer.cleanup();
   }
 }