ready-callback
Launch server after all async task ready
Install
$ npm install ready-callback
Usage
Note: ready-callback is using class
, so you should use node>=2
var koa = require('koa');
var ready = require('ready-callback')();
var app = koa();
ready.mixin(app);
var done = app.readyCallback('service');
serviceLaunch(done);
app.ready(function() {
app.listen();
});
Error Handle
If task is called with error, error
event will be emit, ready
will never be called.
var done = app.readyCallback('service');
serviceLaunch(function(err) {
done(err);
});
app.on('error', function(err) {
});
Weak Dependency
If you set a task weak dependency, task will be done without emit error
.
var done = app.readyCallback('service', {isWeakDep: true});
serviceLaunch(function(err) {
done(err);
});
app.ready(function() {
app.listen();
});
app.on('error', function(err) {
});
You can also set for all ready-callback
var ready = require('ready-callback')({isWeakDep: true});
Ready Status
You can get status every callback end.
app.on('ready_stat', function(data) {
console.log(data.id);
console.log(data.remain);
});
Timeout
You can set timeout when a task run a long time.
var ready = require('ready-callback')({timeout: 1000});
ready.mixin(app);
app.on('ready_timeout', function(id) {
});
var done = app.readyCallback('service');
serviceLaunch(function() {
done();
});
You can also set timeout for every task
ready.mixin(app);
app.on('ready_timeout', function(id) {
});
var done = app.readyCallback('service1', {timeout: 1000});
serviceLaunch(done);
lazyStart
You can set a ready-callback object to lazyStart. It will not check
ready status immediately, and should start manualy to check ready
status.
var ready = require('ready-callback')({ lazyStart: true });
yield sleep(1);
ready.start();
yield sleep(1);
LISENCE
Copyright (c) 2015 popomore. Licensed under the MIT license.