2015-05-22 4 views
1

В основном в моем FlowDef, я хочу сделать присоединение к своим кортежам с некоторыми другими кортежами, которые я буду читать через API. Поэтому я создал еще один пустой канал, и я заполняю его кортежами из API с помощью функции. Затем я делаю CoGroup и использую это как хвостовую трубку.Создание «подвесной» трубы в каскаде

Tap tap1 = new Hfs(); 
Pipe pipe1 = new Pipe("pipe1"); 

Pipe pipeFromApi = new Pipe("pipeFromApi"); 
Pipe joinPipe = new CoGroup(pipe1, pipeFromApi); 
Tap tap2 = new Hfs(); 

flowDef.addSource(pipe1, tap1).addTailSink(joinPipe, tap2); 

Это приводит следующее сообщение об ошибке - «имя канала не найдено ни в одном приемника или источника карты:„pipeFromApi“».

Любые идеи о том, как достичь этого?

ответ

0

Вы можете создать фиктивный SinkTap и сделать его «источником» pipeFromApi.

Исключение говорит, что труба «pipeFromApi» не имеет кран - в то время как каждая труба должна иметь один.

0

Труба в каскадировании используется для обозначения ветвей трубных сборок, которые используются при планировании связывания кранов как с источниками, так и с раковинами. A Tap - это источник данных или приемник для сбора труб. Из этих определений очень ясно, что, чтобы переносить данные, полученные от Tap, вам необходимо связать их с Pipe. В вашем коде вы определили трубку pipeFromApi, но для этого не создали никакого источника (Tap). Кроме того, после создания этого Tap вам необходимо связать трубку pipeFromApi с этим вновь созданным Tap в flowDef. Тогда только поток сможет распознать два источника входного сигнала, который является вашим трупом1, а другой - вашим pipeFromApi. Таким образом, правильный фрагмент кода может выглядеть так:

Tap tap1 = new Hfs("..inputSource"); 
Pipe pipe1 = new Pipe("pipe1"); 

Tap tap2 = new Hfs("..inputSourceFromApi"); 
Pipe pipeFromApi = new Pipe("pipeFromApi"); 

Tap tap3 = new Hfs("..outputSinkDestination"); 
Pipe joinPipe = new CoGroup(pipe1, pipeFromApi); 

flowDef.addSource(pipe1, tap1).addSource(pipeFromApi, tap2).addTailSink(joinPipe, tap3); 
Смежные вопросы