Continuations — Overview & Execution Flow

DEX455 - Apex 集成与工具完全指南:Callouts、命名凭据、WSDL2Apex、Mock 测试

📄 第 404 页 🎬 视频课程

课程章节介绍

同学们,咱们今天来看一个非常实用的执行路径,它用到了Salesforce里的Continuation机制。你先在脑子里想象一个场景:一个呼叫中心里,有成千上万个坐席都在用同一个带按钮的Visualforce页面。按钮的名字可能就叫“同步收件箱”,一点它,页面就要去外部的Web服务拿数据。 在没有特殊处理的情况下,如果每个请求都老老实实等着外部服务返回,那并发请求数很快就爆了,用户也会觉得又慢又卡。而Continuation就是来漂亮地解决这个问题的。 咱们顺着执行路径走一遍。首先,用户在Visualforce页面上点击“同步收件箱”按钮,页面就把这个请求发给了应用服务器。应用服务器接到请求后,并不会自己傻傻地等着外部Web服务响应,而是把这个活儿转交给一个专门的“Continuation服务器”。交出去之后,应用服务器就解脱了,它可以马上把页面控制权还给浏览器,让请求线程迅速释放掉,不占着茅坑。 接着,Continuation服务器就替我们去调用外部的Web服务,等外部服务处理完,把数据返回来,Continuation服务器再把结果回传给应用服务器。应用服务器拿到数据后,重新刷新Visualforce页面,把最新的信息呈现给用户。 你看,这个过程对用户来说几乎是无感的,但背后巧妙地绕开了长时间占用线程的问题。正因为请求线程被快速释放,即使几千个坐席同时点“同步收件箱”,也完全不会超过Salesforce的并发请求限制。这就是Continuation带来的核心好处,让高并发的企业应用又稳又快。

关键词

Apex Salesforce Developer Guide