课程章节介绍
同学们,我们来看这一页幻灯片,它讲的是报表的同步运行和异步运行。
幻灯片上写的是:如果你想快速完成一个报表的运行,请使用,同步运行,;如果不是为了快速,出于下面三个原因,我们也建议同步运行——第一,长时间运行的报表在同步运行时,超时限制的风险更低;第二,API 一次能处理更多数量的同步运行请求;第三,同步运行的结果会保存 24 小时,可以定期直接访问。最后还写了,同步运行用 `ReportManager.runReport` 方法,异步运行用 `ReportManager.runAsyncReport` 方法。
听到这里你可能已经觉得有点不对劲了。既然快速也推荐同步,不快速也推荐同步,那还要异步方法干什么呢?而且经验告诉我们,同步执行会受到比较严格的超时限制,长时间报表很容易达到上限,怎么反而说它“超时风险低”呢?
其实呀,这是幻灯片里的一个笔误,意思恰好写反了。正确的指导应该是这样的:
如果你想快速拿到报表结果,可以用,同步运行,,因为请求会立刻处理并返回。但如果你的报表数据量大、运算复杂,就可能跑很久,这时候用同步运行很容易触发 60 秒超时。所以对于这种,长时间运行的报表,,我们应该使用,异步运行,。异步报表在后台执行,突破了超时限制,API 也能同时处理更多的异步请求,运行出的结果同样会保存 24 小时,方便你随时来取。
因此,大家在实际开发中,简单快速的报表可以放心用 `runReport` 同步方法;一旦涉及可能耗时较长的报表,记得用 `runAsyncReport` 异步方法,这样才是既安全又高效的做法。
好,这一页的内容我们就梳理清楚了,有没有什么问题?
关键词
Apex
Salesforce
Developer Guide