Firebase 谷歌云功能变得无响应(根据日志)

Firebase 谷歌云功能变得无响应(根据日志),firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我刚刚在探索Firebase的谷歌云功能(启用Blaze现收现付定价计划) 希望通过创建一个使用TMDB API的项目进行测试,并将所有页面复制并将JSON数据存储到firebase数据库 这是我的密码 //用于保存异步任务的数组 var asyncTasks=[]; var-page=0; var总页数=630; log('startedfetchingmovies'); console.log(“总页数”+总页数); //循环总页数次 对于(变量i=0;i

我刚刚在探索Firebase的谷歌云功能(启用Blaze现收现付定价计划)

希望通过创建一个使用TMDB API的项目进行测试,并将所有页面复制并将JSON数据存储到firebase数据库

这是我的密码

//用于保存异步任务的数组
var asyncTasks=[];
var-page=0;
var总页数=630;
log('startedfetchingmovies');
console.log(“总页数”+总页数);
//循环总页数次
对于(变量i=0;i<总页数;i++){
//我们在这里实际上并不执行异步操作
//我们将包含它的函数添加到“任务”数组中
asyncTasks.push(函数(回调){
page++;
控制台日志(“处理页面”+页面);
var url=base_url+页面;
get(url、函数(数据、响应){
//从原始标头获取rateLimit
var ratelimit=响应.rawHeaders[27];
//log(response.rawHeaders[26]+''+response.rawHeaders[27]);
如果(费率限制==2){
//超过速率限制,请等待10秒
控制台日志(“超出速率限制”);
//睡眠10秒以重置速率限制
睡眠。睡眠(10);
}
global.all_data=global.all_data.concat(data.results);
回调();
}).on('error',函数(err){
log('请求出错',err.request.options);
问题页面推送(err.request.options.href);
//失败前再试一次
var eurl=err.request.options.href;
client.get(欧元、函数(数据、响应){
控制台日志(“重试”+eurl);
global.all_data=global.all_data.concat(data.results);
});
});
});
}
const limit=functions.config().exec.limit;
log(“开始| |执行[limit”+limit+”]”;
parallelLimit(异步任务、限制、电影结果);
});
下面是最后执行的movie_results函数

函数电影\u结果(){
var moviesRef=defaultDatabase.ref(“v1/movies”);
var statusRef=defaultDatabase.ref(“v1/status”);
//moviesRef.remove();
var data_json={};
log(“获取的电影总数”+全局.all_data.length);
异步.each(全局.all_数据,
功能(mov、cb){
data_json[mov.id]=mov;
cb();
},
函数(){
console.log(“结果后处理完成”);
console.log(“Total=“+data\u json.length+”| Expected=“+data\u info.Total\u resu`在此处输入代码`lts”);
console.log(“上传到Firebase数据存储”);
moviesRef.update(数据_json);
log(“已完成抓取电影”);
//在状态数据库上更新此作业的状态
var datim=新日期();
statusRef.update({datim:{“records\u fetched”:data\u json.length,“records\u expected”:data\u info.total\u results,
“总页数”:数据信息。总页数,“时间戳”:datim}
});
//关闭所有数据库引用
moviesRef.off();
statusRef.off();
}
);
}
问题是这在大多数情况下执行正常

如您所见,我添加了日志记录,以便在asynTask中的函数执行时通知我

console.log(“处理页面”+页面)

在谷歌云日志中我看到

gcloud beta函数日志读取--限制20--执行id 118384524692947

我被随机页面卡住了(每当它卡住的时候)。我知道这些功能还在测试阶段。所以,有人能评论说他们和我看到了同样的问题吗。是否有任何方法可以检查当前是否有任何云函数进程正在执行,并知道是否已终止。我不认为它是超时的。谢谢

I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:22.286  Procesing Page 223
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:22.786  Procesing Page 224
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:23.384  Procesing Page 225
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:23.984  Procesing Page 226
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:25.084  Procesing Page 227
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:25.484  Procesing Page 228
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:26.184  Procesing Page 229
I      tmdbUpdatePubSub  118384524692947  2017-04-26 09:47:27.284  Procesing Page 230

你解决过吗?我遇到了类似的问题: