Azure功能取消令牌

pdkcd3nj  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(114)

我是AzureFunctions的新手,所以请原谅我问一个简单的问题...
我得到了下面的代码,当我的队列中有一个项目时,它就会被触发

[FunctionName("ProcessCompanies")]
    public async Task ProcessCompaniesAsync([ActivityTrigger] IDurableOrchestrationContext context,
        [Queue("outqueue"), StorageAccount("AzureWebJobsStorage")] ICollector<myCompanyData> msg,
        ILogger log)
    {
        
        log.LogInformation("Getting companies");
        var companies = await _myService.GetCompaniesAsync(); //here how to pass cancellation token?
        log.LogInformation($"Found {companies.companies.Count} companies.");

        companies.companies.ForEach(msg.Add);

        log.LogInformation($"{companies.companies.Count} companies added to queue.");
    }

如何将CancellationToken传递给异步调用?主要是,我应该传递它吗?在本例中,我执行一个API请求

q0qdq0h2

q0qdq0h21#

可以将CancellationToken注入到函数方法中。这是一种获得函数正常关闭通知的方法。请参见https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library?tabs=v4%2Ccmd#cancellation-tokens
一旦注入,你可以将它传递给下游调用。是否应该将它传递给那个API由你决定。在进程结束之前有一段很短的时间,所以如果调用不需要很长时间,你可以尝试完成它。

相关问题