bjo*_*ern 2 azure azure-worker-roles azure-configuration azure-cloud-services
我在Azure中运行了一个具有4个工作实例的服务.当我扩展到5个工作器实例时,已启动的第一个实例进入"忙"状态.这是为什么?放大期间会发生什么?azure会重新运行所有启动任务吗?我很困惑,似乎无法找到任何关于此的文档.
在扩展到5个实例后,第一个实例将其状态更改为:
Busy (Waiting for role to start... Application startup tasks are running. [2014-08-12T18:36:52Z])
Run Code Online (Sandbox Code Playgroud)
并且在那里运行的java进程停止了.为什么会这样?!
任何帮助,将不胜感激.
STARTUP.CMD
REM Log the startup date and time.
ECHO Startup.cmd: >> "%TEMP%\StartupLog.txt" 2>&1
ECHO Current date and time: >> "%TEMP%\StartupLog.txt" 2>&1
DATE /T >> "%TEMP%\StartupLog.txt" 2>&1
TIME /T >> "%TEMP%\StartupLog.txt" 2>&1
REM enable ICMP
netsh advfirewall firewall add rule name="ICMPv6 echo" dir=in action=allow enable=yes protocol=icmpv6:128,any
ECHO Starting WebService >> "%TEMP%\StartupLog.txt" 2>&1
tasklist /FI "IMAGENAME eq java.exe" 2>NUL | find /I /N "java.exe" >NUL 2>&1
if "%ERRORLEVEL%"=="0" GOTO running
SET %ERRORLEVEL% = 0
START /B java -jar WEB-SERVICE-1_0--SNAPSHOT.jar app.properties >> "%TEMP%\StartupLog.txt" 2>&1
:running
SET %ERRORLEVEL% = 0
Run Code Online (Sandbox Code Playgroud)
在扩展操作期间,Azure将通过Changing事件将RoleEnvironmentTopologyChange发送到所有现有实例.这使得这些实例可以发现新的角色实例,以便允许实例之间的通信.请注意,只有在您定义了内部端点时才会发生这种情况(如果您打开RDP,则隐式获取内部端点).
默认情况下,这些拓扑更改不会影响运行的实例.但是,如果您订阅了Changing事件并进行了设置,e.Cancel=True那么角色实例将重新启动并再次运行您的启动任务.
有关拓扑更改的更多信息,请参阅http://azure.microsoft.com/blog/2011/01/04/responding-to-role-topology-changes/.
所以这里有两个问题:
e.Cancel=true.| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |