2012-12-11 125 views
1

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

我在免费试用期,我在这里遇到某种帐户限制吗?或者还有其他的方式,我应该这样做或者通过某种方式来计算让定时器停止的方法?

+0

您是使用网站还是云服务? –

+0

这是一个网站。 – Bonnici

回答

4

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

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

如果您希望某个进程保持运行状态,您需要自己在Azure中运行节点。有两个选项:

  1. 使用虚拟机(目前在预览),以及手动复制node.exe,而JavaScript到虚拟机,并手动启动您的应用程序(或作为预定任务或东西) 。您可以使用Windows或Linux。
  2. 使用云服务,并创建一个起始节点为startup task的工作者角色。这也使您可以扩展。