API嵌入程序
说明
- 提供API埋点方法
示例代码
const mysqlOptions = {
mysqlOpt: {
host: 'IP Address',
port: 3306,
user: 'username',
password: 'password',
database: 'db name',
},
insertSql: 'INSERT INTO db.table_name (col1, col2, col3) VALUES (?, ?, ?);',
};
const redisOptions = {
redisOpt: {
host: 'IP Address',
port: 6379,
password:'auth password',
db: 0,
},
cachePrefix: 'testtest',
};
const apiEmded = new ApiEmded(redisOptions, mysqlOptions);
// 根据inserSql返回一个二维数组,以便写入数据库
ApiEmded.prototype.getValues = function getValues() {
if (this.redisClient.connected) {
const tradeDate = this.getDataDate();
const prefix = `${this.cachePrefix}-${tradeDate}-`;
return this.redisClient.keysAsync(`${prefix}*`)
.then(keys => Promise.all(keys.map(key => this.redisClient.getAsync(key).then((value) => {
const factorId = key.replace(prefix, '');
// this.redisClient.delAsync(key);
return [factorId, tradeDate, value];
}))));
}
return Promise.resolve(null);
};
// 模拟入库,实际应用时不需要该步骤
setTimeout(() => {
apiEmded.batchWriteInDb();
}, 3000);
// 模拟将数据缓存至redis中,实际应用时,不需要该步骤
setTimeout(() => {
apiEmded.increase('1111');
apiEmded.increase('1111');
apiEmded.increase('2222');
apiEmded.increase('3333');
apiEmded.increase('2222');
apiEmded.increase('1111');
}, 1000);