码迷,mamicode.com
首页 > 其他好文 > 详细

pomelo生命周期回调和组件添加

时间:2015-06-23 10:13:02      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:pomelo   nodejs   js   server   components   

一 生命周期回调


生命周期回调能够让开发者在不同类型的服务器生命周期中进行具体操作。
提供的生命周期回调函数包括:beforeStartup,afterStartup,beforeShutdown,afterStartAll。
其具体的功能说明如下:

beforeStartup(app, cb)
before application start components callback
Arguments
app - application object
cb - callback function


afterStartup(app, cb)
after application start components callback
Arguments
app - application object
cb - callback function


beforeShutdown(app, cb)
before application stop components callback
Arguments
app - application object
cb - callback function


afterStartAll(app)
after all applications started callback
Arguments
app - application object


具体使用方法:在game-server/app/servers/某一类型服务器/ 目录下添加lifecycle.js文件,具体文件内容如下:

module.exports.beforeStartup = function(app, cb) {
    // do some operations before application start up
    cb();
};


module.exports.afterStartup = function(app, cb) {
    // do some operations after application start up
    cb();
};


module.exports.beforeShutdown = function(app, cb) {
    // do some operations before application shutdown down
    cb();
};


module.exports.afterStartAll = function(app) {
    // do some operations after all applications start up
};

二 组件

首先,在app/components/添加HelloWorld.js文件, 大致代码如下:
// components/HelloWorld.js
module.exports = function(app, opts) {
  return new HelloWorld(app, opts);
};


var HelloWorld = function(app, opts) {
  this.app = app;
  this.interval = opts.interval | DEFAULT_INTERVAL;
};


HelloWorld.name = '__HelloWorld__';


HelloWorld.prototype.start = function(cb) {
  console.log('Hello World Start');
  cb();
}


HelloWorld.prototype.afterStart = function (cb) {
  console.log('Hello World afterStart');
  cb();
}


HelloWorld.prototype.stop = function(force, cb) {
  console.log('Hello World stop');
  cb();
}


这样一个组件就创建完成了,然后在app中配置,在master服务器中加载:
var helloWorld = require('./app/components/HelloWorld');


app.configure('production|development', 'master', function() {
  app.load(helloWorld, {interval: 5000});
});


三 示例

我这边是在arena服务中加入了lifecycle,同时加了一个组件,过程如下。

1 启动过程

技术分享


技术分享


技术分享


2 关闭过程

技术分享

技术分享

pomelo生命周期回调和组件添加

标签:pomelo   nodejs   js   server   components   

原文地址:http://blog.csdn.net/xufeng0991/article/details/46602653

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!