代码之家  ›  专栏  ›  技术社区  ›  hcham1

如何强制Azure角色回收处于未知状态

  •  0
  • hcham1  · 技术社区  · 8 年前

    我有一个Azure Worker角色,该角色正在处理来自服务总线队列的消息。我收到的一条特定消息导致堆异常损坏,我无法捕获和处理该异常。这导致我的系统进入未知/不正常状态:

    状态:未知(角色已报告自身不健康。)

    我试图保护工作者角色不进入这种状态,但如果这种情况再次发生,我希望工作者角色重新启动,但在我手动重新启动它之前,它只是停留在那里。

    如果堆损坏,有没有人知道我能做些什么来强制重新启动?

    我知道我可以通过退出 Run() 循环,但如何检查堆是否已损坏?工作人员角色中是否有可以提供帮助的设置?

    1 回复  |  直到 8 年前
        1
  •  1
  •   hcham1    8 年前

    事实证明,您无法捕获损坏的堆,处理这种情况的唯一方法是让一个进程以您的工作角色运行,您可以监视该进程并在其崩溃时重新启动。问题是工人角色从未崩溃。