如何克服 Vercel 中 10 秒无服务器限制超时?

问题描述 投票:0回答:1

我们的 React / Next.js Web 应用程序有一个动画渲染部分。我们使用 Vercel 无服务器解决方案进行图像渲染、生成 GIF / MP4。

但通常操作不会在 10 秒内完成。有时是15秒。

我能做什么?我有两个想法。

  1. 每 5 秒运行一次 cron 作业。它检查是否有尚未执行的渲染,如果是,则处理它。

https://vercel.com/guides/what-can-i-do-about-vercel-serverless-functions-timing-out

cron 作业是否有相同的超时时间?在 Heroku 中则不然。

  1. 不在 Vercel 上进行渲染,而是制作一个 Node.js 应用程序,并在 Heroku 上运行,同样的超时为 15 秒,甚至可以增加到 45 秒。

你的看法是什么?

node.js timeout serverless vercel animated-gif
1个回答
0
投票

如果您使用的是 Vercel pro 或更高版本,您可以在 API 路由中导出

maxDuration
变量,以将超时增加到最多 5 分钟

请参阅 https://vercel.com/changelog/serverless-functions-can-now-run-up-to-5-minutes

// someAPI.ts

import { NextApiRequest, NextApiResponse } from "next";

// for app router
export const maxDuration = 30;

// for pages router
export const config = {
maxDuration: 30,
}

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
// ...etc
© www.soinside.com 2019 - 2024. All rights reserved.