npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

noflo-runtime-msgflo

v0.12.0

Published

NoFlo runtime for Node.js over AMQP/MQTT etc

Downloads

943

Readme

noflo-runtime-msgflo

NoFlo runtime, designed for use with msgflo. Loads a NoFlo graph and registers it as a msgflo participant. The exported ports of the NoFlo network then becomes accessible through message queues (AMQP or MQTT), and msgflo can coordinate how multiple such networks send data between eachother.

Will eventually allow a single entry-point for FBP runtime protocol clients (like Flowhub) to access NoFlo FBP networks that span multiple nodes.

Usage

Using the commandline tool

noflo-runtime-msgflo --name myworker --graph project/WorkerGraph --broker amqp://foo.cloudamqp.com/bar

Altenatively one can use the embedding API, see src/mount.coffee

runtime = require 'noflo-runtime-msgflo'
options =
  name: 'gssmeasure'
  graph: 'the-grid-api/PrecomputeGss',
  basedir: __dirname
  broker: config.amqp.url,
rt = new runtime.mount.Mounter options
rt.start (err, rt) ->
  # started

Debugging

noflo-runtime-msgflo supports flowtrace allows to trace & store the execution of the NoFlo network, so you can debug any issues that would occur. You can enable tracing using --trace commandline argument, or via the trace:start FBP runtime protocol message.

noflo-runtime-msgflo --graph project/MyMainGraph --trace

To trigger dumping a flowtrace locally, send the SIGUSR2 Unix signal

kill -SIGUSR2 $PID_OF_PROCESS
... Wrote flowtrace to: /tmp/1151020-12063-ami5vq.json

Or, to trigger a flowtrace remotely, send a trace:dump FBP protocol message to the queue of participant.

msgflo-send-message --queue .fbp.$participantId.receive --json '{ "protocol":"trace", "command":"dump", "payload":{ "graph":"default", "type":"flowtrace.json"} }'

Then, assuming .fbp.$participantId.send has been bound to queue my-flowtraces, one could download it

msgflo-dump-message --queue my-flowtraces --amount 1

You can now use various flowtrace tools to introspect the data. For instance, you can get a human readable log using flowtrace-show

flowtrace-show /tmp/1151020-12063-ami5vq.json

-> IN repeat CONN
-> IN repeat DATA hello world
-> IN stdout CONN
-> IN stdout DATA hello world
-> IN repeat DISC
-> IN stdout DISC

Optimizing startup time

Since NoFlo 0.7 FBP manifest is used, making it possible to cache components which turns process startup faster due to less disk IO. To cache graph's components, first install noflo and run noflo-cache-preheat to create the FBP manifest file fbp.json. Then run the graph passing the cache parameter:

noflo-runtime-msgflo --cache true --name myworker --graph project/WorkerGraph --broker amqp://foo.cloudamqp.com/bar

TODO

0.3