Traffic
A node.js semaphore implementation.
Single node semaphore
Usage
var traffic = ; traffic;
Example with web servers
app;
Namespaced semaphores
traffic;
Example for web servers
app;
Distributed semaphore
Traffic allows to have a distributed semaphore across multiples nodes using Zookeeper.
Configure
var config = zkHost: 'localhost:2181' // host:port zkRoot: '/' // znode path zkTimeout: 4000 // 4 seconds;var traffic = ;traffic;
zkRoot
will be created if it doesn't exists.
Usage
traffic; // Namespacedtraffic;
Note: Using namespaces creates znodes under config.zkRoot
.
Don't forget to close the Zookeeper connection...
process;
Common patterns
If traffic
fails to connect to Zookeeper you can fallback into normal semaphores.
traffic;
Run tests
Install jasmine
npm install -g jasmine
Run specs
npm test
jasmine spec/semaphore_spec.js
jasmine spec/distributed_semaphore_spec.js