@moxoff/gnappo
v1.2.2
Published
HTTP API for long running jobs
Downloads
3
Keywords
Readme
Gnappo
HTTP API to manage long running jobs
Usage
There's no need to install this module or to clone the repository.
You can simply run:
npx @moxoff/gnappo --run PATH_TO_YOUR_EXECUTABLE --mongodb-url mongodb://HOST:PORT/DB
When a job is submitted the executable will be called with two positional arguments:
- the path where it can find the input json
- the path where it needs to save the output json (if any)
Note: If you enable authentication in mongodb by using the official docker
image and the env variables MONGO_INITDB_ROOT_USERNAME
,
MONGO_INITDB_ROOT_PASSWORD
and MONGO_INITDB_DATABASE
, you can need to use
the authSource
option in the mongo url:
npx @moxoff/gnappo \
--run PATH_TO_YOUR_EXECUTABLE \
--mongodb-url mongodb://MONGO_INITDB_ROOT_USERNAME:MONGO_INITDB_ROOT_PASSWORD@HOST:PORT/MONGO_INITDB_DATABASE?authSource=admin
this is because MONGO_INITDB_ROOT_USERNAME
is created in the admin database and not in MONGO_INITDB_DATABASE
.
Options
Full list of command line options:
--help Show help [boolean]
--version Show version number [boolean]
-i, --ip The ip where to to bind the server sending
messages [default: "0.0.0.0"]
-p, --port The port where to bind the server sending
messages [default: "7000"]
--mongodb-url, --mongodb URL of mongodb
[default: "mongodb://localhost:27017/gnappo"]
--run, --executable Executable to be runned when a job it's
submitted.It will receive the paths of the
input and output jsons as arguments
--workdir, --cwd Working directory used to spawn the process.
Defaults to the same direcotry containing the
input file [default: null]
-n, --max-running-jobs Max number of jobs running at the same time.
Other jobs will be queued[number] [default: 1]
--cors Enable CORS [boolean] [default: false]
--logging-level, --logging Logging verbosity
[choices: "error", "warn", "info", "verbose", "debug", "silly"] [default:
"info"]
API
Gnappo exposes an HTTP API to submit, retrieve and manage jobs. Refer to the full API docs.
Contributing
To release a new version use npm version [ major | minor | patch ]