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

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

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

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

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

Буду очень признателен за любые мысли по этому вопросу и теме.


person Community    schedule 10.06.2016    source источник


Ответы (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
    })
    

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

person bergie    schedule 23.02.2017