Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Node.js的应用程序引擎上运行时间长的进程_Node.js_Express_Google App Engine_Web Scraping_Cron - Fatal编程技术网

使用Node.js的应用程序引擎上运行时间长的进程

使用Node.js的应用程序引擎上运行时间长的进程,node.js,express,google-app-engine,web-scraping,cron,Node.js,Express,Google App Engine,Web Scraping,Cron,我有一个Node.js web scraper,可能需要一个多小时才能运行。尝试在App Engine标准环境下运行时超时。部署它的最佳方式是什么 此外,它还触发了使用cron.yaml每天运行一次,cron.yaml访问一条快速路线。有更好的方法吗 下面是一段简化的代码片段。我可以在本地运行它,并将其部署到App Engine。它在dlLinkArray中有少量链接时运行良好。但是,如果数额更大(数千),它似乎什么也做不了。使用情况报告显示它会运行几秒钟 conststorage=requi

我有一个Node.js web scraper,可能需要一个多小时才能运行。尝试在App Engine标准环境下运行时超时。部署它的最佳方式是什么

此外,它还触发了使用cron.yaml每天运行一次,cron.yaml访问一条快速路线。有更好的方法吗

下面是一段简化的代码片段。我可以在本地运行它,并将其部署到App Engine。它在dlLinkArray中有少量链接时运行良好。但是,如果数额更大(数千),它似乎什么也做不了。使用情况报告显示它会运行几秒钟

conststorage=require(“@googlecloud/Storage”);
常量存储=新存储();
函数startDownload(){
dlLinkArray=[/*具有URL和文件名{link:'的对象数组http://source.com,文件名:'file123456'}*/];//大约10000个链接/文件
var承诺=[];
dlLinkArray.forEach(记录=>{//创建嵌套承诺的数组
承诺,推动(
上传文件(bucketName、record.link、record.filename)
。然后((x)=>{
if(x[1].name)//将远程服务器上的任何文件重命名为可用ID
返回重命名文件(bucketName,x[1].name,record.filename+“.pdf”);//重命名文件使用storage.file.move重命名,返回承诺
其他的
返回x;
})
);
});
返回承诺。全部(承诺);
}
函数上载文件(bucketName、fileURL、重命名){
//将删除文件上载到云存储桶
返回存储
.bucket(bucketName)
.upload(文件URL{
gzip:是的,
元数据:{
cacheControl:'公共,最大年龄=31536000',
},
});
}
/*快线*/
app.get('/api/whatever/download',(req,res)=>{
buckets2.startDownload()。然后(()=>console.log(“完成”);
res.status(200)。发送(“下载已开始”);

});我怀疑问题可能是由于请求截止日期而发生的。对于App Engine标准,默认设置为60秒。但是,如果使用,请求在标准环境中最多可以运行24小时。

这是“空闲超时”设置吗?这在基本缩放中有不同的限制吗?我设置了
idle\u超时:120m
,得到了一个超出范围的错误。但60m有效。无需指定“空闲超时”。请求截止日期由缩放设置决定,因此您唯一需要更改的是缩放设置,问题应该得到解决。