NoFlo и загрузка графов JSON

Я рассматриваю возможность использования NoFlo в качестве механизма оркестровки. Чтобы сохранить разделение проблем и используя NodeJS, я в основном создам RESTful API с использованием Express, который будет иметь серию запросов POST и GET. Этот API RESTFful будет взаимодействовать с оркестровками (т.е. графиками NoFlo и средой выполнения) путем запуска и остановки графиков во время выполнения. С точки зрения поведения, запросы POST запускают / останавливают оркестровку, а запросы GET получают информацию об оркестровке (т. Е. Статус, ошибки...). С точки зрения состояния, POST создаст оркестровку, а GET перечислит оркестровку.

Исходя из того, что я прочитал в различных сообщениях стека (т.е. - начиная с noflo, запуская его из nodejs), это представляется возможным, но у меня все еще есть несколько вопросов. Вот один из них.

Можно ли загрузить график JSON из памяти в среду выполнения Noflo, вместо того, чтобы иметь постоянный файл, а затем загрузить его в сеть NoFlo из этого файла? Я хотел бы загрузить график в виде объекта JSON.

Я пытаюсь сделать две вещи с этим: - Загрузить и сохранить графики в базе данных. - Пользовательский интерфейс для управления этими графиками в базе данных.

Любые мысли по этому вопросу и теме будет принята с благодарностью.

1 ответ

Да, можно заставить NoFlo запускать JSON (или .fbp) определение графа из памяти, из файла, где угодно.

Это происходит в два этапа:

  1. Загрузите графическую строку / объект в экземпляр noflo.Graph

    noflo.graph.loadJSON(graphDefinition, function (err, graph) {
      if (err) {
        // Handle graph loading errors
      }
      // Now you have a graph object, you can create a network from it
    });
    
  2. Создание сети NoFlo на основе определения графа

    noflo.createNetwork(graph, function (err, network) {
      if (err) {
        // Handle network setup/starting errors
      }
      // Now you have a running network object. You can use its
      // lifecycle events and methods to interact with it
    })
    

Кроме того, загруженный выше графовый объект является "живым", поэтому, если вы внесете в него изменения, сеть отреагирует соответствующим образом. Это означает, что вы можете добавлять / изменять узлы и соединения во время выполнения.

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