1.0.0 • Published 10 years ago

koa-ready v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
10 years ago

koa-ready

Launch server after all async task ready


NPM version Build Status Build Status NPM downloads

Install

$ npm install koa-ready -g

Usage

var koa = require('koa');
var ready = require('koa-ready');
var app = koa();
ready(app);

// register a service
var done = app.async('service');
serviceLaunch(done);

// callback will be fired after all service launched
app.ready(function() {
  app.listen();
});

Error Handle

If task is called with error, error event will be emit, ready will never be called.

// register a service that will emit error
var done = app.async('service');
serviceLaunch(function(err) {
  done(err);
});

// listen error event
app.on('error', function(err) {
  // catch error
});

Weak Dependency

If you set a task weak dependency, task will be done without emit error.

var done = app.async('service', {isWeakDep: true});
serviceLaunch(function(err) {
  done(err);
});

// will be ready
app.ready(function() {
  app.listen();
});

app.on('error', function(err) {
  // never be called
});

Ready Status

You can get status every task end.

app.on('ready_stat', function(data) {
  console.log(data.id); // id of the ended task 
  console.log(data.remain); // tasks waiting to be ended 
});

Timeout

You can set timeout when a task run a long time.

ready(app, {timeout: 1000});
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.async('service');
serviceLaunch(function() {
  // run a long time
  done();
});

You can also set timeout for every task

ready(app);
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.async('service1', {timeout: 1000});
serviceLaunch(done);

LISENCE

Copyright (c) 2015 popomore. Licensed under the MIT license.

1.0.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.0

10 years ago