簡體   English   中英

如何在單個工作角色中啟動兩個socket.io進程?

[英]How to start two socket.io processes in a single worker role?

我必須以azure worker角色啟動兩個socket.io進程。 我遵循了此鏈接中的步驟,以下是我的ServiceDefinition.csdef

<WorkerRole name="WorkerRole1">
<Startup>
  <Task commandLine="setup_worker.cmd &gt; log.txt" executionContext="elevated">
    <Environment>
      <Variable name="EMULATED" value="false"/>           

      <Variable name="RUNTIMEID" value="node" />
      <Variable name="RUNTIMEURL" value="http://az413943.vo.msecnd.net/node/0.6.20.exe" />
    </Environment>
  </Task>      
</Startup>
<Endpoints>
  <InputEndpoint name="HttpIn" protocol="tcp" port="80" />
</Endpoints>
<Runtime>
  <Environment>
    <Variable name="PORT">
      <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='HttpIn']/@port" />
    </Variable>
    <Variable name="EMULATED">
      <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
    </Variable>
  </Environment>
  <EntryPoint>
    <ProgramEntryPoint commandLine="node.cmd .\server.js" setReadyOnProcessStart="false" />
  </EntryPoint>
</Runtime>
<Imports>
  <Import moduleName="RemoteAccess" />
  <Import moduleName="RemoteForwarder" />
  <Import moduleName="Diagnostics" />
</Imports>   
<LocalResources>
  <LocalStorage name="WorkerLocalStorage" cleanOnRoleRecycle="false" sizeInMB="1024" />
</LocalResources>

在這種情況下,我將在運行時啟動server.js,但我也想同時啟動另一個socket.io腳本。 原因是我不想在小型應用程序中使用其他輔助角色。 只是為了節省成本。 我嘗試將其作為啟動任務啟動,但是當我在模擬器中啟動雲服務且輸出對話框中沒有錯誤信息時,輔助角色正在掛起/正在循環。 因此,我猜想socket.io腳本只能在運行時部分中啟動。 有什么辦法可以在單個工作角色中啟動兩個socket.io腳本?

您可以通過多種方式執行此操作:

  1. 通過啟動任務啟動流程
  2. 從角色入口點開始該過程。

對於#1,如果您看到角色正在掛起/循環,那是由於啟動任務中的錯誤,而不是因為Azure阻止您運行socket.io腳本。 請參閱http://blogs.msdn.com/b/kwill/archive/2013/08/09/windows-azure-paas-compute-diagnostics-data.aspx,以了解如何解決此問題,尤其是疑難解答場景2( http://blogs.msdn.com/b/kwill/archive/2013/08/26/troubleshooting-scenario-2-role-recycling-after-running-fine-for-2-weeks.aspx )。 另外,請確保將啟動任務設置為后台,以便主機引導程序在繼續角色啟動過程之前不會等待進程退出。

對於#2,您將必須修改node.cmd以生成兩個進程,或者切換到使用其他角色入口點,並使該角色入口點與其他腳本一起啟動node.cmd。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM