异步任务调用同步和异步函数

时间:2018-05-08 17:26:19

标签: asynchronous async-await azure-functions azure-cosmosdb

我有一个Azure函数,需要为SQL语句准备字符串。它的工作方式如下所示,但我是异步方法的新手,文档有点压倒性。我天真的本能是,如果返回的字符串来自异步方法,以防任何事情被共享,但是我的另一部分认为没有真正共享的东西会更好。有没有人可以解释3次电话之间的差异(包括一次等待)以及下面代码的任何潜在问题?

for context:这是在CosmosDB触发器上运行的Azure函数,用于展平文件并将其写入Azure SQL Server。 Cosmos中预期的更新次数约为每秒200次

<group name="RECORDS_PER_PURCHASER" isStartNewPage="true" keepTogether="true">
     <groupExpression><![CDATA[$F{purchaserId}]]></groupExpression>
</group>

1 个答案:

答案 0 :(得分:0)

除非你在SqlPrep方法中进行某种I / O,否则从它返回Task<string>是没有意义的。您的两种方法都会同步运行,但实际上firstSqlPrep会产生一些与创建相关的开销,await会导致Task

在代码中使用secondSqlPrep。继续使用async - await进行数据库调用。