2016-10-04 4 views
0

Ich beginne gerade mit Noflo, ich bin verblüfft, warum ich nicht in der Lage bin, einen einfachen Flow arbeiten zu lassen. Ich begann heute die Installation von Komponenten noflo und Kern nach dem Beispiel Seiten, und die kanonische „Hallo Welt“ -BeispielWarum verbinden sich meine Flüsse nicht?

Read(filesystem/ReadFile) OUT -> IN Display(core/Output) 
'package.json' -> IN Read 

Werke ... so weit in Ordnung, dann wollte ich es „noflo-rss“ etwas ändern Hinzufügen auf die Mischung und das Ändern sie dann das Beispiel

Read(rss/FetchFeed) OUT -> IN Display(core/Output) 
'http://xkcd.com/rss.xml' -> IN Read 

wie Laufen dieser

$ /node_modules/.bin/noflo-nodejs --graph graphs/rss.fbp --batch --register=false --debug 

... aber keine Zigarre - es erfolgt keine Ausgabe, es sitzt nur da ohne Ausgang an allen

Wenn ich ein console.log in den Sourcecode von FetchFeed.coffee

parser.on 'readable', -> 
    while item = @read() 
    console.log 'ITEM', item ## Hack the code here 
    out.send item 

dann bleibe ich den Ausgang und den Inhalt des RSS-Feeds sehen.

Frage: Warum out.send in rss/FetchFeed nicht die Daten an die core/Output Futter für sie drucken? Mit welcher dunklen Magie funktioniert das erste Beispiel, aber nicht mit der zweiten?

Antwort

1

Wenn der Prozess mit --batch ausgeführt wird, wird der Prozess beendet, wenn das Netzwerk gestoppt wurde. Dies wird durch eine Anzahl von offenen Verbindungen zwischen Knoten bestimmt, die nicht Null sind. Das Problem ist, dass rss/FetchFeed keine Verbindung auf seinem Outport öffnet, so dass die Anzahl der Verbindungen auf Null fällt und der Prozess existiert.

Eine Problemumgehung ist, ohne --batch auszuführen. Eine andere, die ich gerade als pull request eingereicht habe (braucht Review).

Verwandte Themen