1

我在 Azure 网站上运行 Node.js 应用程序,我试图让计时器无限期地每 30 秒关闭一次。我试过同时使用 setInterval 和node-cron,但是大约半小时后它们都停止工作了。日志中没有错误,站点保持正常运行,但计时器停止触发。我可以再次启动或重新创建计时器,但它会在半小时后停止工作。

我在免费试用期,我在这里遇到某种帐户限制吗?还是有其他方法我应该这样做,或者有什么方法可以弄清楚是什么让计时器停止?

4

1 回答 1

4

在网站上托管 Node.js(或者实际上使用对云服务的 node.js powershell 支持)时,您的节点进程由IISNode托管。

IISNode 将管理节点进程的生命周期。我猜它会在 30 分钟后故意让你关机。

如果您想要一个持续运行的进程,您需要自己在 Azure 中运行节点。有两种选择:

  1. 使用虚拟机(当前处于预览状态),手动将 node.exe 和您的 javascript 复制到虚拟机上,然后手动启动您的应用程序(或作为计划任务或其他方式)。您可以使用 Windows 或 Linux。
  2. 使用云服务,并创建一个将节点作为启动任务启动的 Worker 角色。这也使您能够扩展。
于 2012-12-11T16:56:29.007 回答