为什么我的云功能即使完成了任务仍能继续运行?

时间:2018-09-11 07:58:34

标签: node.js firebase google-cloud-storage google-cloud-functions firebase-storage

所以我尝试从已上传到Firebase存储的图像制作缩略图。该功能可以正确生成缩略图。但是从功能日志来看,即使缩略图已完美生成,该功能仍会重复运行。

从下面的日志中可以看到,该函数从2:37到2:40反复运行。我需要从终端删除该功能以停止该功能。

enter image description here enter image description here

这是我使用的代码:

{{1}}

成功生成缩略图后如何停止功能?

1 个答案:

答案 0 :(得分:1)

您正在将缩略图写回存储空间:

const thumbFilePath = `eventThumbnail/${thumbFileName}`
await bucket.upload(tempFilePath, {destination: thumbFilePath,metadata: metadata})

这会再次触发您的功能,但是您没有正确检查是否应再次处理新缩略图。

这是您目前为提早终止而执行的唯一检查:

if (!contentType.startsWith('image/')) {
    console.log('This is not an image.');
    return null;
}

显然,这不适用于您的情况。也许您应该检查新编写的文件的路径,而不是查看其内容类型。也许跳过写入eventThumbnail的文件就可以了。