使用Node.js Azure中的长时间运行时间间隔

我在Azure网站上运行一个Node.js应用程序,我试图让计时器无限期地每隔30秒closures一次。 我试过使用setInterval和node-cron,但两者都在大约半小时后停止工作。 日志中没有错误,站点保持不变,但计时器停止发射。 我可以再次启动或重新创build定时器,但是在另一个半小时之后它会停止工作。

我在免费试用期,我在这里遇到某种账户限制吗? 还是有其他的方式,我应该这样做,或者一些方法来解决什么是使计时器停止?

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

IISNode将pipe理节点进程的生命周期。 我猜这是30分钟后故意closures你的。

如果您想要一个将保持不变的进程,您需要在Azure中自己运行节点。 有两个选项:

  1. 使用虚拟机(当前处于预览状态),然后手动将node.exe和JavaScript复制到虚拟机上,然后手动启动您的应用程序(或作为计划任务或其他)。 您可以使用Windows或Linux。
  2. 使用云服务,并创build一个启动节点作为启动任务的工作者angular色。 这也给了你扩展的能力。