【问题标题】:Will an instance of a Google Cloud Run container overwrite temporary file?Google Cloud Run 容器的实例会覆盖临时文件吗?
【发布时间】:2021-01-02 19:17:22
【问题描述】:

我正在使用具有默认设置(每个实例 80 个请求)的 Cloud Run,运行带有 node 和 express 的容器。

服务需要在处理请求时创建一个临时文件。我想知道当多个请求同时到达时,它们会同时处理吗?那么如果文件名相同的话,在第一个进程完成之前,它会被另一个进程覆盖吗?

对于 Node,我认为我们没有并行进程,但我认为除非 express 按顺序处理请求,否则仍可能存在冲突。

【问题讨论】:

  • 不保证并发。请求可以重叠。创建具有唯一名称的临时文件名。大多数主要语言都支持创建唯一名称。 stackoverflow.com/q/7055061/8016720
  • @JohnHanley 谢谢!我什至没有想过我可以自动生成唯一的临时名称。 ??????

标签: node.js express google-cloud-platform google-cloud-run


【解决方案1】:

如果你设置max concurrency = 1,那么你可以使用相同的文件名。

如果您使用max concurrency > 1,那么在处理文件时如果使用相同的文件名,您将面临多个请求发生冲突的风险。最好的办法是为每个请求使用唯一的临时文件名,并确保在最后将其删除。

【讨论】:

  • 谢谢。我想我会使用一个唯一的文件名来降低成本并避免冷启动时间。
猜你喜欢
  • 2021-05-26
  • 2020-05-12
  • 2019-02-20
  • 2019-09-18
  • 2021-12-25
  • 2021-12-11
  • 2020-11-20
  • 1970-01-01
相关资源
最近更新 更多