Excel Power Query - 睡眠或等待命令等待 API 速率限制

Posted

技术标签:

【中文标题】Excel Power Query - 睡眠或等待命令等待 API 速率限制【英文标题】:Excel Power Query - Sleep or Wait Command to Wait on API Rate Limit 【发布时间】:2016-11-03 21:34:17 【问题描述】:

在 Excel Power Query (PQ) 2016 中,是否有这样的功能可以在继续之前插入“SLEEP 15 seconds”?不是暂停,而是睡眠功能。

问题: 我在 PQ 中写了一个函数来查询:https://westus.api.cognitive.microsoft.com/text/analytics/v2.0。按照设计,该功能可以正常工作。

我有一个包含 10K 条推文的工作表,我想将它们传递给该函数。当我这样做时,它会达到大约 60 左右,并且我在 PQ 中得到一条 ERROR 行。看看 Fiddler 是这样说的:

message=超出速率限制。请在 11 秒后重试。 statusCode=429

我想如果我在 PQ 函数中插入一个 SLEEP 5 秒(等效)命令,它就不会这样做。

帮助和感谢。

【问题讨论】:

【参考方案1】:

你想要Function.InvokeAfter

 Function.InvokeAfter(function as function, delay as duration) as any

这是一个例子:

= Function.InvokeAfter( () => 2 + 2, #duration(0,0,0,5))

等待 5 秒后返回 4


要回答您尚未提出的问题,如果您要再次执行完全相同的 Web.Contents 调用,您可能需要使用

[IsRetry = true]

Web.Contents 的选项表示您实际上想要再次运行 Web 请求..

【讨论】:

以上是关于Excel Power Query - 睡眠或等待命令等待 API 速率限制的主要内容,如果未能解决你的问题,请参考以下文章

【OFFICE 365】Power Query 多工作簿合并

使用 Power Query 从 Excel 缩进中提取层次结构

Power Query Excel 中的覆盖/锁定值

Excel Power Query 重复 OData 请求

Excel数据建模——提高Power Query数据处理效率

Power Query初识