gpt4 book ai didi

c# - 手动重新启动 Azure Worker 角色 "WaWorkerHost.exe"

转载 作者:太空狗 更新时间:2023-10-29 21:56:48 29 4
gpt4 key购买 nike

据我了解,Azure Worker 角色是在名为 WaWorkerHost.exe 的主机应用程序的帮助下运行的,还有另一个名为 WaHostBootstrapper.exe 的应用程序,它检查 WaWorkerHost 是否.exe 正在运行,如果没有运行,它将运行 WaWorkerHost.exe

  1. 这种“辅助角色状态检查”多久进行一次?
  2. 如何快速自己重启Worker角色?我可以重新启动正在运行的机器工作角色并等待几分钟,或者选择以下传统方法:

    Taskkill/im/f WaWorkerHost.exe

    然后等待几分钟,让WaHostBootstrapper.exe启动,但这非常低效且缓慢。有没有任何(即时)方法可以重新启动辅助角色?

  3. 我可以运行类似以下内容并期望与 WaHostBootstapper.exe 类似的结果还是有其他考虑因素?

    WaWorkerHost.exe {MyAzureWorkerRole.dll}

最佳答案

  1. Bootstrap 每 1 秒检查一次 WaWorkerHost 状态。
    您可以通过查看跟踪间隔在 Bootstrap 日志 (c:\resources\WaHostBootstrapper.txt) 中查看它:
    <

"Getting status from client WaWorkerHost.exe"

<小时/>
  • 您可以使用AzureTools这是 Azure 支持团队使用的实用程序。
  • 它的功能之一是优雅地回收角色实例:

    enter image description here

    或者,您可以通过编程方式重新启动实例:

    使用Microsoft Azure Compute Management library :

    X509Certificate2 cert = new X509Certificate2("");
    var credentials = new CertificateCloudCredentials("your_subscription_id", cert);

    using (var managementClient = new ComputeManagementClient(credentials))
    {
    OperationStatusResponse response =
    await managementClient.Deployments.RebootRoleInstanceByDeploymentSlotAsync(
    "cloud_service_name",
    DeploymentSlot.Production, // or staging
    "instance_name");
    }
    <小时/>
  • 不建议这样做,原因有以下三个:

    1. Bootstrap 每秒检查一次,这对于大多数情况来说应该足够了。
    2. 这可能会导致奇怪的问题。比如你杀了worker,bootstrapper识别到worker挂掉了,你手动启动worker,bootstrapper也尝试启动worker却失败(会崩溃?会进入僵尸状态?)。它可能会导致 Bootstrap 不健康,意味着没有任何东西可以处理工作进程。
    3. 当然,这取决于 Bootstrap 除了启动工作线程之外还做什么。但即使它目前除了启动该角色之外什么也不做,您也无法确定明天 Azure 团队是否会决定为其添加更多职责/操作。
  • 关于c# - 手动重新启动 Azure Worker 角色 "WaWorkerHost.exe",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37809270/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com