当前位置: 首页 > 知识库问答 >
问题:

服务fabric中取消令牌的使用

段干弘扬
2023-03-14
RunAsync (System.Threading.CancellationToken cancellationToken);
{
 LoadData(CancellationToken);
}
Async Task LoadData(CancellationToken)
{
 Method1(CancellationToken) -- Aync call
 Method2() -- Normal call
 Method3() -- Normal call
}

正如您所看到的,我有Method1,这是一个异步调用,它作为一个单独的线程运行,因此将相同的令牌传递给这个方法,因为主线程将不知道子线程。但是,Method2和Method3只是函数调用,因此不会传递CancellationToken,因为主线程的上下文中正在运行。

我有几个关于在Service Fabric中使用CancellationToken的问题。1.我们是否需要为正在从长时间运行的方法(Async/Sync)调用的所有方法传递CancellationToken?2.我处理CancellationToken的方式是正确的,还是需要修改什么?

共有1个答案

狄凯
2023-03-14

我们是否需要为正在从长时间运行的方法(Async/Sync)调用的所有方法传递CancellationToken?

是的,如果你能尊重它的话。如果一个方法不对它做任何事情,那么将它传递给它是没有意义的。

我处理CancellationToken的方式是正确的,还是需要修改什么?

例如,您可以这样做:

public void Method1(CancellationToken cancellationToken)
{
    // some work

    if(cancellationToken.IsCancellationRequested)
        return;

    // some more work

    if (cancellationToken.IsCancellationRequested)
        return;

    // some more work
}

由您决定该方法是否有一些逻辑点需要检查以取消,或者该方法是如此快以至于不会有太大区别。

顺便说一下,这不是专门针对service fabric的,您可以在这里找到更多的文档。

 类似资料:
  • Hangfire在发起一个取消任务请求或者终止任务时,为任务提供了取消令牌的支持,在前一种情况下,将自动放回队列的对头,允许Hangfire重新处理任务。 取消令牌通过 IJobCancellationToken 的接口暴露出来。当发起取消任务请求时,它通过 ThrowIfCancellationRequested 方法来抛出 OperationCanceledException : public

  • 您好,我正在JWTTokenStore中使用Spring Security Oauth2。我想在用户将令牌内容与资源请求一起发送回来后从REST服务读取令牌内容。例如:curl-i-H“授权:持有人”http://localhost:8080/api/UserDetails 读取UserDetails服务中的令牌。 非常感谢。

  • 是否有任何API(Python、JS、...)可用于生成和检索Firebase云消息传递服务器令牌? 最终目标应与单击“项目设置”中的“添加服务器密钥”按钮相同。

  • 是否可以从应用程序中创建JWT令牌,并使用GCP服务帐户在应用程序中验证它?我如何在Python中做到这一点? 这两个应用程序都部署在GCP中。应用程序可以部署在GCF、Cloud Run、AppEngine、GKE甚至GCE中。 我花了一些时间阅读Google Cloud文档,但我没有找到如何处理服务间身份验证的“通用”答案。(很可能是因为它们对每个GCP产品都不相同) 那么,考虑到我们抛开了谷

  • 使用邮递员,我可以毫无问题地获得令牌。如果单击和,我会得到以下代码片段: 当我尝试在Rest Assured中对请求建模时,我得到了一个400错误,但不清楚为什么: 我哪里出了问题很明显吗?是否应该将键/值传递到中?