【问题标题】:Error while deleting stateless service in Service Fabric Cluster在 Service Fabric 群集中删除无状态服务时出错
【发布时间】:2018-03-30 08:14:12
【问题描述】:

在 Service Fabric 群集中,我有一个无状态服务,它有一个 while(true) 循环在 RunAsync 方法中连续运行。由于这个while循环,我发现很难从集群中删除应用程序。每次我尝试删除说明无法分离进程时都会发生错误。通常我会尝试部署应用程序一次以删除代码。要在应用程序之上重新部署代码,我必须部署两次。在不删除无限while循环的情况下是否可以解决这个问题。

更新:Runasync 方法

protected override async Task RunAsync(CancellationToken cancellationToken)
    {
        //making sure the thread is active 
        while (true)
        {
           do something;
        }

    }

感谢您的意见。

【问题讨论】:

  • 您能在此处添加您的 RunAsync 方法以便更好地理解吗?
  • 我已经添加了 Runasync 方法。

标签: azure-service-fabric service-fabric-stateless


【解决方案1】:

在关机期间,传递给 RunAsync 的取消令牌被取消。 您需要在主循环中检查取消令牌的 IsCancellationRequested 属性。当这变为真时,如果调用,令牌的 ThrowIfCancellationRequested 方法将引发 OperationCanceledException。

如果您的服务未在合理的时间内响应这些 API 调用,Service Fabric 可以强制终止您的服务。通常这只发生在应用程序升级或服务被删除时。此超时默认为 15 分钟。

请参阅此文档以获得良好的参考:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-lifecycle#stateless-service-shutdown

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 2016-03-25
    • 2016-04-30
    • 2017-10-03
    • 2016-11-16
    • 2017-07-25
    • 2017-10-08
    • 2018-10-30
    • 2017-03-07
    相关资源
    最近更新 更多