【问题标题】:Azure Service Fabric - Delete Actor with custom ServiceAzure Service Fabric - 使用自定义服务删除 Actor
【发布时间】:2017-05-21 18:45:25
【问题描述】:

我在删除 Actor 时遇到了困难。我创建了自定义基础服务以在我的 Actor System 上启用备份,不幸的是 RunAsync 中的 Task.Delay() 禁止我删除 Actor(DeleteActorAsync 挂起)。

自定义服务中的我的 RunAsync 构造简单:

protected override async Task RunAsync(CancellationToken cancellationToken)
{
    await Task.Delay(500, cancellationToken);
}

就是这样。当我删除延迟并替换为标准 base.RunAsync() 演员删除运行没有问题。

任何人都可以提出一些建议吗?我在文档中找不到任何可用的内容。

【问题讨论】:

    标签: .net azure task-parallel-library azure-service-fabric


    【解决方案1】:

    我已经设法在 ActorService 源代码中找到了问题(尽管它已经在 ActorService.RunAsync() 的代码注释中)。

    如果您在自定义实现中覆盖它,则必须运行 base.RunAsync(...) :)

    protected override async Task RunAsync(CancellationToken cancellationToken)
    {
        await base.RunAsync(cancellationToken);
        await Task.Delay(500, cancellationToken);
    }
    

    就是这样。现在一切正常!

    【讨论】:

    • 你可能应该这样做:await base.RunAsync(cancellationToken);
    • @VMAtm 是的,我已经编辑了答案。我忘了在那里等待。谢谢!
    猜你喜欢
    • 2018-10-30
    • 2018-08-27
    • 2017-07-19
    • 2017-09-02
    • 2017-01-31
    • 2017-01-04
    • 2017-06-09
    • 2017-07-14
    • 2016-09-19
    相关资源
    最近更新 更多