private void tryEvaluatingPendingInput(DefaultTableRuntime tableRuntime, MixedTable table) {
    DefaultOptimizingState optimizingState = tableRuntime.getOptimizingState();
    if (optimizingState.isOptimizingEnabled()
        && !optimizingState.getOptimizingStatus().isProcessing()) {
      AbstractOptimizingEvaluator evaluator =
          IcebergTableUtil.createOptimizingEvaluator(tableRuntime, table, maxPendingPartitions);
      if (evaluator.isNecessary()) {
        AbstractOptimizingEvaluator.PendingInput pendingInput =
            evaluator.getOptimizingPendingInput();
        logger.debug(
            "{} optimizing is necessary and get pending input {}",
            tableRuntime.getTableIdentifier(),
            pendingInput);
        optimizingState.setPendingInput(pendingInput);
      } else {
        optimizingState.optimizingNotNecessary();
      }
      optimizingState.setTableSummary(evaluator.getPendingInput());
    }
  }
Executor that refreshes table runtimes and evaluates optimizing status periodically.
amoro-ams/src/main/java/org/apache/amoro/server/scheduler/inline/TableRuntimeRefreshExecutor.java