首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用docx节点库添加更多图像以生成word文档时的内存空间问题

使用docx节点库添加更多图像以生成word文档时的内存空间问题
EN

Stack Overflow用户
提问于 2020-09-24 02:46:19
回答 1查看 97关注 0票数 0
代码语言:javascript
复制
const imageResponse = await axios.get(url[0], {
               responseType: "arraybuffer",
              });
const buffer = Buffer.from(imageResponse.data, "utf-8");
const image = Media.addImage(doc, buffer);

我在一个循环中使用了上面的代码,这个循环将执行100次,因为它有100个图像。每个图像大小最大为150kb。我部署了256mb的云函数。我收到“错误:超出内存限制。函数调用被中断”。

问题陈述:

我需要在word文档中添加250个图像。我收到超过内存限制的错误。

问与答

有没有办法获得一张图片并添加到word文档中,然后清除该图片所使用的内存?

如何有效地在firebase云函数中使用此插件,并对图像进行云存储?

环境:

Firebase云函数(NodeJs)

大小: 256mb

Word文档生成库: docx (https://docx.js.org/#/)

EN

回答 1

Stack Overflow用户

发布于 2020-09-24 05:40:08

对于您描述的那种场景,正如Doug提到的那样,您应该考虑增加资源,以更好地处理对函数的请求。

您可以使用可用于部署函数的gcloud命令,使用标志内存来设置memory,例如:

代码语言:javascript
复制
gcloud beta functions deploy my_function --runtime=python37 --trigger-event=providers/cloud.firestore/eventTypes/document.write --trigger-resource=projects/project_id/databases/(default)/documents/messages/{pushId}
--memory=AmountOfMemory

我建议你看一下云函数的best practices文档,其中解释了:

“临时目录中的本地磁盘存储是内存中的文件系统。您写入的文件会消耗函数可用的内存,并且有时会在两次调用之间保持不变。如果不显式删除这些文件,可能最终会导致内存不足错误和随后的冷启动。”

要更好地了解云函数如何管理请求,请查看此处提到的document

“云函数通过将请求分配给函数的实例来处理传入的请求。根据请求量以及现有函数实例的数量,云函数可能会将请求分配给现有实例或创建新实例

函数的每个实例一次只能处理一个并发请求。这意味着,当您的代码正在处理一个请求时,不可能将第二个请求路由到同一实例。因此,原始请求可以使用您请求的全部资源(CPU和内存)。“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64034432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档