@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);
    }
  }
 private void removeSilentlyFromQueue(ReportQueue.Item item) {
   try {
     queue.remove(item);
   } catch (Exception e) {
     LOG.error(
         String.format("Failed to remove analysis report %d from queue", item.dto.getId()), e);
   }
 }