faktory-client
A node.js client for the Faktory job server
This repository provides a node.js client for Faktory. The client allows you to push jobs, fetch jobs, and otherwise communicate with the Faktory server.
If you're looking for a faktory worker framework for node.js, take a look at jbielick/faktory_worker_node
. This is just the connection client library.
Installation
npm install faktory-client
Usage
faktory-client
implements a promise interface for all async methods.
Pushing jobs
const client = ; await client;await client;
Fetching jobs
const client = ; await client;// fetches from each queue in order, blocking for 2s on each if they are emptyconst job = await client; jobjid// 8ec88fc8-5060-451c-8ebb-efd4cb9c4a97 await client;// orawait client;
See tests for more examples.
FAQ
- How do I specify the Faktory server location?
By default, it will use tcp://localhost:7419 which is sufficient for local development.
Use FAKTORY_URL to specify the URL, e.g. tcp://faktory.example.com:12345
or
use FAKTORY_PROVIDER to specify the environment variable which does
contain the URL: FAKTORY_PROVIDER=FAKTORYTOGO_URL. This level of
indirection is useful for SaaSes, Heroku Addons, etc.
See the Faktory client for other languages
TODO
- Heartbeats
- Reconnects
- Connection interrupt graceful shutdown
- Quiet/Stop signal handling from server
- TLS
Development
Install docker.
bin/server
will run the faktory server in a docker container. The server is available at localhost:7419
Use DEBUG=faktory*
to see debug lines.
Tests
Start a faktory server on localhost or use bin/server
.
npm test
will run the tests concurrently with ava.
Author
Josh Bielick, @jbielick