有这样一个需求场景,每天0点定时请求一个远程地址数据,获取订单列表,这个订单列表是需要分页的。请求到订单后,需要针对订单ID,同步更新保存到数据库。
目前可以使用的技术有:云函数提供的定时触发器、request-promise来请求外网数据。
但是针对分页、批量更新订单没有头绪。不知道大家有没有什么好的方案?
// 云函数入口文件
const cloud = require('wx-server-sdk')
//引入request-promise用于做网络请求
var rp = require('request-promise');
cloud.init()
const db = cloud.database();
// 云函数入口函数
exports.main = async(event, context) => {
var param = {
'end_update_time': end,
'start_update_time': start,
'page_size': 10,
'page': 1,
};
var option = {
uri: 'xxxx',
qs: param,
json: true
}
return await rp(option)
.then(function(res) {
console.log(res);
return res
})
.catch(function(err) {
console.log(err);
return '失败'
});
}
像楼上大佬说的promise应该可以,我自己一般用递归函数来搞定循环多次执行任务
分页是远端还是你这边?
订单的话,尽量不要批量吧,把每个订单的更新创建一个promise,然后Promise.ALL,或者把单个更新写入到队列里.