if(form.is_batch) {
console.log('//如果是批处理红包,则异步调用,前端直接显示弹窗');
// 如果没有报错,就让当前云函数 调用当前云函数(云对象同理)。注意:这里是异步的
uniCloud.callFunction({
name: 'batch-redpacket',
data: {
id: redpacket_id,
}
}).catch(e=>{
console.log(e.message);
}).then(e=>{
console.log('//开始批处理');
})
// 等待500毫秒,给一个请求发出去的时间
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve(Object.assign(payload, {
_id: redpacket_id //红包ID
}));
}, 500)
})
}
- 发布:2024-04-05 17:33
- 更新:2024-04-06 09:16
- 阅读:195
产品分类: uniCloud/腾讯云
示例代码:
操作步骤:
就是云函数那边直接保存,并没有执行到batch-redpacket
就是云函数那边直接保存,并没有执行到batch-redpacket
预期结果:
实际应该是调用云函数batch-redpacket,在内部会循环执行batch-redpacket直到结束
实际应该是调用云函数batch-redpacket,在内部会循环执行batch-redpacket直到结束
实际结果:
报错
报错
bug描述:
2024-04-05T15:55:04.76Z " 413 Payload Too Large | [http://169.254.0.131:80/admin?&eventId=18ead410270_2&seqId=16afc1188e6f2-18ead40fe09_1c-18ead410270_2]
Error: 413 Payload Too Large | [http://169.254.0.131:80/admin?&eventId=18ead410270_2&seqId=16afc1188e6f2-18ead40fe09_1c-18ead410270_2]
at L.e.then.catch.e (/var/user/@dcloudio/serverless/lib/tcb/uni-cloud.js:1:1584)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)"
2024-04-05T15:55:04.77Z "//开始批处理"
1***@163.com (作者)
uniCloud.callFunction({
name: 'batch-redpacket',
data: {
id: redpacket_id,
}
})
就是这句只传递一个红包ID,就变成数据过大了,不大理解啊
2024-04-06 09:54
1***@163.com (作者)
batch-redpacket云函数内部也根据红包ID,获取数据来处理,然后再判断是否进行递归。。 递归的次数100,200次是可以没问题,但到了3000则之间报错,不大理解问题出在哪里 你知道怎么解决吗
2024-04-06 10:00
yuhespace
回复 1***@163.com: 后台环境限制调到最大了吗
2024-04-06 10:40
1***@163.com (作者)
回复 yuhespace: 谢谢啦 应该是在batch-redpacket云函数的处理过程中上传zip导致的 单次处理了最多5000张图片,后面设置成1000张就没问题
2024-04-06 11:43