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

时间:2016-11-03 21:34:18

标签: powerquery m

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

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

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

消息=超出了速率限制。 11秒后再试一次。的StatusCode = 429

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

帮助&感谢。

1 个答案:

答案 0 :(得分:3)

您需要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请求。