This repository has been archived by the owner on Sep 25, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
pomelo sync使用文档
piaohai edited this page Nov 1, 2012
·
8 revisions
##关于
pomelo sync 模块是把根据用户配置定时的同步数据到持久层,如MYSQL,REDIS,文件等。
##目的 由于在游戏应用场景中,需要大量的数据更新与同步,如用户的位置,血量,装备值等,如果频繁的操作数据层,会产生很大的IO操作开销,采用定时批量的方式处理变动的数据是避免压力过大的方法之一,Pomelo Sync就是为了满足这样的需求而开发的。
类似与IBATIS的配置,但是ORM完全由用户配置控制,具有很大的灵活性,因此,可以应用于自己的不同数据层中,如其他的MONGODB等。
npm install pomelo-sync
var DBsync = require('pomelo-sync');
var opts = opts || {};
//用户需要实现的方法
var updateUser = function(dbclient,val) {
console.log('mock save %j',val);
}
//配置客户端连接
var dbclient = {};
var id = 10001;
var optKey = 'updateUser';
//配置 映射的路径方法
var path = {optKey:updateUer}; //key function mapping
opts.write = path;
opts.client = dbclient;
opts.interval = opts.interval || 60 * 1000;
var sync = new DBsync(opts) ;
sync.exec(optKey,id,{name:'hello'});
##API ###sync.exec(key,id,val,cb) 添加异步定时执行的操作 ####Arguments
- key - 方法映射的关键词,使用时需要唯一。
- id - 实体对象主键。
- val - 需要同步对象。
- cb - 同步完成后的异步回调,可以为空。
###sync.flush(key,id,val,cb) 即时同步某个对象 ####Arguments 同exec接口
###sync.isDone 获得内存是否还有需要同步对象的状态,有的话为FALSE,用户可以根据状态判断是否关闭。
##注意 系统默认的同步间隔时间为 1000 * 60 * 3,需要修改的在opts.interval传入即可。 使用外部的持久化时需要设置对应的CLIENT对象,在调用方法时会按第一个参数传给调用方法。具体的对象在第二个参数位置上。 本模块需要采用持久层的内置来实现对事务的支持。
##其他 更详细的示例,请参考源代码与游戏DEMO。