我想为移动应用程序创建一个REST。我想尝试GCP功能,看看它是否符合我的需要。现在我遇到了一些问题。我想我误解了什么。
当我使用firebase工具在本地尝试一个函数时,每当请求到达函数实例时,服务器都会重新创建。我以为这个实例会让我的服务器存活一段时间。
我知道每个实例一次只能处理一个请求。但是,我害怕在每次请求时都会失去重新创建服务器的时间。
我相信我的理解是有问题的。
我只想知道它是如何发挥作用的。
谢谢您:)
下面是我使用nestjs服务器的主要功能
import { NestFactory } from '@nestjs/core'
import { AppModule } from './module'
import { loggerMiddleware } from './middlewares/logger.middleware'
import { ExpressAdapter } from '@nestjs/platform-express'
import * as functions from 'firebase-functions'
import * as express from 'express'
const server: express.Application = express()
export async function createNestServer(server) {
const app = await NestFactory.create(AppModule, new ExpressAdapter(server))
app.use(loggerMiddleware)
return app.init()
}
createNestServer(server)
.then(() => console.log('Nest ok..'))
.catch(error => console.log('Nest broken', error))
export const api = functions.https.onRequest(server)编辑:
如您所见,函数在NestJS服务器初始化结束之前结束。每次我向这个URL发出请求时,它都会进行初始化。即使NestJS服务器已经启动,它也不会将状态保持到下一次调用。
发布于 2019-09-05 22:24:03
如果您的函数需要很长时间来执行,那么当没有空闲的现有实例并准备接受连接时,云函数就会旋转一个新实例。最终,当函数完成时,处理它的实例将处于空闲状态。
在代码的全局范围内运行的代码将作为第一个传入请求的一部分执行。反正也不是“免费”来的。
对于HTTP类型的连接,并发访问限制基于函数所需的带宽,而不是其计算时间。只要您愿意支付每个实例的成本,就可以有数百个实例同时运行在运行时间较长的函数上。
理解云功能的文档限制和配额是很好的。
https://stackoverflow.com/questions/57806107
复制相似问题