gpt4 book ai didi

Azure Service Fabric StatelessService 不调用 OnCloseAsync

转载 作者:行者123 更新时间:2023-12-03 05:47:00 25 4
gpt4 key购买 nike

我有一个简单的 StatelessService,我想知道它何时关闭,以便我可以执行一些快速清理。但它似乎从未调用过 OnCloseAsync。

当服务正在运行并且我通过 Service Fabric Explorer 在正在运行的节点上使用“重新启动”命令时,它会删除服务并重新启动节点。但它永远不会调用 OnCloseAsync 重写,即使它是故意关闭的。

它也不表示传递到 RunAsync 方法的取消 token 。因此没有迹象表明该服务正在关闭。是否有任何情况下它确实会调用 OnCloseAsync,因为我目前看不到它有什么意义。

最佳答案

我想知道发出重新启动命令背后的原因,您期望什么行为?但它确实解释了您所看到的行为。来自 the docs (请记住,重新启动只是停止和启动的组合)

Stopping a node puts it into a stopped state where it is not a member of the cluster and cannot host services, thus simulating a down node. This is useful for injecting faults into the system to test your application.

现在,如果我们看一下 the lifecycle我们读到了这个:

After CloseAsync() finishes on each listener and RunAsync() also finishes, the service's StatelessService.OnCloseAsync() method is called, if present. OnCloseAsync is called when the stateless service instance is going to be gracefully shut down.

所以,基本问题是您的服务没有正常关闭。重新启动命令会终止该进程,并且不会发出取消命令。

关于Azure Service Fabric StatelessService 不调用 OnCloseAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53002294/

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