@moxoff/gnappo
v1.2.2
Published
HTTP API for long running jobs
Downloads
23
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 ]