上文提到过,异步刷新进程可以手动进行停止:
有朋友在评论区提出,如果是手动刷新或者计划刷新,是否知道了requestid就同样可以手动停止呢?
实践是检验真理的唯一标准!
然而,除了异步刷新, 其他的刷新方式都不提供requestid:
那么,我们是不是就没有办法测试了呢?
办法还是有的。
Returns the refresh history for the specified dataset from the specified workspace. https://docs.microsoft.com/zh-cn/rest/api/power-bi/datasets/get-refresh-history-in-group
我们可以通过获取刷新历史的方式来获取最后一次刷新的requestid:
GET https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes
返回的结果:
从结果来看,有4种不同的refreshtype:
刷新类型 | 对应中文 |
---|---|
Scheduled | 计划刷新 |
OnDemand | 按需刷新 |
ViaApi | api刷新 |
ReliableProcessing | 异步刷新 |
而且每一种refreshtype都有一个固定的requestid,这正是我们想要的。
这样,我们就可以在手动刷新后通过获取历史刷新数据来获取最后一次刷新的requestid,再用delete来终止这个request(按照上文的方式):
手动点击刷新按钮,ondemand刷新模式:
405
{"error":{"code":"MethodNotAllowed","message":"Operation failed - Canceling refresh operation is disabled. Dataset ID 9dc8exxx-xxxx-xxxx-xxxx-xxxxxxx3468d Refresh ID bc35512c-xxxx-xxxx-xxxx-xxxxx6935 RefreshType is OnDemand."}}
注意蓝色字段与上面requestid一致。
再试一下ViaApi刷新模式:
405
{"error":{"code":"MethodNotAllowed","message":"Operation failed - Canceling refresh operation is disabled. Dataset ID 9dc8exxx-xxxx-xxxx-xxxx-xxxxxxx3468d Refresh ID 35938221-xxxx-xxxx-xxxx-xxxxxbffdc6 RefreshType is ViaApi."}}
注意蓝色字段与上面requestid一致。
不过,除了以上的4中刷新方式,Power BI还提供了一种刷新方式:
那这种刷新是否也能被获取呢?
答案是否定的,因为在官方说明中有这么一句:
Limitations:OneDrive refresh history isn't returned.
也就是说,至少目前来看,只有异步刷新可以实现手动停止刷新进程,而其他方式没有办法进行手动停止。
What a pity!
本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!