【问题标题】:Best way to handle long generation of file to download处理长代文件下载的最佳方法
【发布时间】:2021-12-31 12:31:34
【问题描述】:

我有一个使用 3rd 方 API (PowerBI API for Embeded reports) 生成/导出文件(报告中的页面)供用户下载的 Web 应用程序。 应用程序最多可以等待 1 分钟等待第 3 方 API 响应。从 UX 一直阻止用户的用户界面并不好。有没有其他方法可以处理这么长时间的下载?

我从 3rd-party API 接收流。

需要遵循三个步骤:

  • 发送导出请求。

  • 轮询。

  • 获取文件。

在第二步,我可以跟踪导出进度,但不知道如何将其应用于 UI/UX。

【问题讨论】:

  • 通常这是您在网站中构建某种通知系统的地方。您的站点将轮询服务器(或通过 Web 套接字或 SignalR 之类的东西接收推送通知),然后当有可用通知(例如“报告准备下载”)时,它会将其显示给用户,然后他们可以从那里去下载文件。这个通知系统不会特定于任何一个页面,而是通常与网站的导航系统集成在一起。虽然您也可以使用电子邮件通知来达到相同的效果。

标签: c# asp.net api user-experience powerbi-embedded


【解决方案1】:

使用exportToFile API 导出报告时,有一些限制可能会导致下载时间过长。

  1. Power BI 导出的数量限制为每容量每分钟 50 个报表页。

  2. 并发请求-exportToFile 支持并发导出作业请求。超过其并发请求数的作业不会终止。 并发适用于报表中的页面,包含 10 个报表页面/选项卡的单个报表将在每个单独呈现之前不会完成。这有多快取决于容量大小。

  3. 嵌入式容量 - 您需要将报告托管在以嵌入式容量运行的工作区中。容量越大,您可以同时运行的报告就越多,并且您的报告将快速呈现。您可以参考链接了解每个 SKU 的最大并发页数。

快速下载与轮询无关。我们只能使用 PercentComplete 和 ExportState 来跟踪导出到文件 Job 的进度和状态。

请在此处找到参考: https://docs.microsoft.com/power-bi/developer/embedded/export-to?tabs=gen2
https://docs.microsoft.com/rest/api/power-bi/reports/get-export-to-file-status#exportsta

【讨论】:

    猜你喜欢
    • 2010-10-11
    • 2014-01-27
    • 1970-01-01
    • 2020-12-11
    • 2015-02-28
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多