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