我有一个 API js 文件,它由 cronjob 通过curl GET 调用。
这个 js 文件基本上通过
await fetch
向外部 API 进行查询,并通过 await .. updateOne
将响应中的一些数据保存到 MongoDB上。问题是这种情况在大约 500 个不同值的循环中发生,并且需要超过 10 秒才能完成,而我的无服务器函数的服务器超时限制是 10 秒。
那么如何将其拆分为多个“GET”请求呢? 在 API js 文件中执行
for loop
不是一样吗,因为它仍然算作单个操作?
每次我通过不同的关键字搜索此内容时,它都会找到不相关的内容,我是否遗漏了某些内容?也许很难找到这样的案例?我对整个 cronjob/无服务器功能很陌生,如果这不是要求这个的正确位置,请指出我应该在 Stack Exchange 中将其发布到哪里。
两种可能的解决方案:
serverless.yml
来完成此操作,可以在provider
部分或直接在函数定义中。 (AWS Lambdas 的最大超时为 900 秒或 15 分钟。)当您使用无服务器(至少使用 AWS)按持续时间和内存消耗进行计费时,将其拆分可能没有多大意义,因此增加超时设置可能是更简单的解决方案,但我不知道您的完整信息上下文,所以这只是一个猜测。