Skip to content
This repository has been archived by the owner on Sep 25, 2023. It is now read-only.

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。

Clone this wiki locally