几个问题讨论
nicholas-yangding opened this issue · comments
1、在应用层去做限流,可以通过排队形式异步生成PDF,PDF生成成功后,和用户再做一个交互;
2、可以暴露node web服务,代码中维护一个或者多个browser,通过打开page的方式去生成PDF,做好单个browser的内存管理即可,时间长了会容易占内存;
3、关于线程池个数配置,puppeteer比较占用cpu,如果线程池设置多大,多个CPU的上下文切换比较大,这个需要根据自己的业务来做权衡,我们在内部使用的过程中,由于html中的数据过大,排版比较复杂,导致单个pdf文件能独占一颗CPU;
PS:后续我们也会相应增加限流,限制PDF请求速率; 多个browser热备这种方式,目前这种方式没有用到生产中,主要考虑因素是长时间打开browser,随着时间推移,可能会出现性能问题,目前我们是每次生成时,打开一个browser,会同时打开多个Page页
感谢您的提问,我们会针对您的问题做更深层次考虑,并针对一些问题进行加强,您有比较好的建议或者实现方式,也可以提供给我们。