如何在 vercel 上使用express定期运行函数

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

我有一个在本地运行的简单的 Express 应用程序,我想每 10 秒运行一个函数。

...
fetchData();
setTimeout(fetchData, 10000);

app.listen(PORT, async function (err) {
  if (err) console.log(err);
  console.log("Server listening on PORT", PORT);
});



module.exports = app;

它在开发中工作得非常好,但是将其部署到 vercel 时它只运行一次。我需要配置什么?我检查了文档,但没有找到与此相关的内容。使用 Cronjob 对我来说不是一个选择,因为我需要每 5-10 秒调用一次该函数。

提前致谢

node.js express vercel
1个回答
0
投票

Vercel 提供使用 cron 作业调用特定 API 方法如下https://vercel.com/blog/cron-jobs

注意,Vercel 将 NodeJS 应用程序作为无服务器端点处理,这意味着您的服务器处于睡眠模式,直到它被调用。

因此它永远不会使 cron 作业处于活动状态,因为它不是一个正在运行的进程。

所以即使那样运行也是不可能的。

setTimeout() 方法设置一个计时器,一旦计时器到期,该计时器就会执行函数或指定的代码段。

https://developer.mozilla.org/en-US/docs/Web/API/setTimeout

因此,如果您想每 10 秒运行一次作业,您需要使用 setInterval(),但这在 Vercel 上仍然不起作用。

我希望我已经向你澄清了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.