Как сделать пакетную обработку с помощью Apex?

Как я могу создать приложение пакетной обработки с Apache Apex?

Все примеры, которые я нашел, были потоковыми приложениями, что означает, что они не заканчиваются, и я хотел бы закрыть мое приложение, как только оно обработает все данные.

Спасибо

2 ответа

Какой у вас сценарий использования? Первоначально поддержка пакета включена в план и в настоящее время ведется работа над ней.

С другой стороны, до тех пор, как только вы убедитесь, что ваша обработка завершена, оператор ввода может отправить сигнал в виде ShutdownException(), который будет распространяться через DAG и выключать DAG.

Дайте нам знать, если вам нужна дополнительная информация.

Вы можете добавить условие выхода перед запуском приложения. например

public void testMapOperator() throws Exception
{
   LocalMode lma = LocalMode.newInstance();
   DAG dag = lma.getDAG();

   NumberGenerator numGen = dag.addOperator("numGen", new NumberGenerator());
   FunctionOperator.MapFunctionOperator<Integer, Integer> mapper
    = dag.addOperator("mapper", new  FunctionOperator.MapFunctionOperator<Integer, Integer>(new Square()));
   ResultCollector collector = dag.addOperator("collector", new ResultCollector());

   dag.addStream("raw numbers", numGen.output, mapper.input);
   dag.addStream("mapped results", mapper.output, collector.input);

// Create local cluster
   LocalMode.Controller lc = lma.getController();
   lc.setHeartbeatMonitoringEnabled(false);

 //Condition to exit the application
  ((StramLocalCluster)lc).setExitCondition(new Callable<Boolean>()
  {
     @Override
     public Boolean call() throws Exception
    {
       return TupleCount == NumTuples;
    }
  });

  lc.run();

  Assert.assertEquals(sum, 285);
}

полный код см. https://github.com/apache/apex-malhar/blob/master/stream/src/test/java/org/apache/apex/malhar/stream/FunctionOperator/FunctionOperatorTest.java

Другие вопросы по тегам