Spartacus 服务器端渲染(SSR)的 timeout 设置

发布时间 2023-11-13 19:36:28作者: JerryWang_汪子熙

如下图所示,Spartacus SSR engine 的几种 timeout 超时机制的设置:

其中第122 行的 3_000 写法,意思就是默认的 3000 毫秒超时时间。

官网能看到对于这些 timeout 字段的说明:

timeout 的设置是一个数字,指示 SSR 服务器在回退到 CSR 默认的渲染机制之前,尝试呈现页面的时间量(以毫秒为单位)。

一旦延迟到期,服务器将返回 CSR 的 index.html,其中不包含任何预渲染标记。

CSR 应用程序 (index.html) 使用 Cache-Control:no-store 标头提供服务。

因此,它不被缓存层存储。 SSR 页面不包含此标头,因为最好缓存 SSR 页面。

在后台,SSR 服务器继续渲染页面的 SSR 版本。 一旦渲染完成,页面就会被放置在本地缓存(内存中)中,以便在下次请求时返回。 默认情况下,服务器在第一次返回页面后会从缓存中清除该页面。

超时值为 0 将立即返回 CSR 页面。

默认值为 3000 毫秒。

forcedSsrTimeout

forcedSsrTimeout 设置也是一个数字,指示当请求的渲染策略设置为 ALWAYS_SSR 时等待渲染页面的时间(以毫秒为单位)。 如果服务器负载过重或者页面包含错误,这可以防止 SSR 渲染阻塞资源太久。

默认值为 60000 毫秒(即 60 秒)。

建议根据需要调整forcedSsrTimeout设置。

maxRenderTime

maxRenderTime 设置是渲染完成所需的最长时间。 如果渲染超过此超时,则释放并发槽,这允许下一个请求在服务器端渲染。 但是,这可能不会释放尚未完成的渲染的渲染资源,这可能会导致服务器上的额外内存使用。 maxRenderTime 记录超出渲染时间的渲染,这对于调试很有用。 该值应始终高于超时和forcedSsrTimeout 设置的值。

默认值为 300000 毫秒(5 分钟)。