2012-12-11 39 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的工作者角色。這也使您可以擴展。