最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

可扩展性,使用的木偶使Node.js应用密集的PDF生成任务?

IT培训 admin 4浏览 0评论

可扩展性,使用的木偶使Node.js应用密集的PDF生成任务?

该应用程序的目标是产生一个使用PDF格式的木偶,我们获取数据,建立HTML模板然后用铬无头生成PDF,我们接着,返回一个链接到新生成的PDF文件。

这个问题,是需要花费大约7000毫秒生成PDF,主要是因为三个操纵木偶的功能:启动(启动无头broweser),跳转(导航到HTML模板)和PDF(生成PDF)。

所以具有约7〜8秒回答一个请求,与更多的传入请求或突然激增,它可以很容易地需要大约40到50秒30个同时请求,这是我发现是不可接受的。

经过大量的时间花费在研究上,我会实现群集模块采取多个进程的优势。

但是,除了集群外,还有什么其他可行的方案,以优化的单一实例的时间?

回答如下:

有什么考虑?

  1. 考虑到每个应用程序开始调用一次puppeteer.launch。您的转换脚本将只检查是浏览器实例已经存在,并通过调用newPage(),基本上新建选项卡使用它,而不是创建浏览器每次。
  2. 您可以考虑调用时进行拦截Requestpage.on('request', this.onPageRequest); goto()和过滤掉某些类型的页面加载,现在的文件,但你并不需要他们的PDF渲染;你可以滤除外部资源,以及如果您遇到这种情况。
  3. 当使用pdf()您可以从您的服务回报回Buffer,而不是使用文件系统,并返回链接PDF文件的创建位置。这可能会或可能不会加快东西,取决于你的服务设置;反正少IO应该会更好。

这可能是你能为你的应用程序的单一实例做;根据以上规则的执行(几页),PDF与一些图像1-2秒使我。

为了加快东西使用群集。除了将它嵌入到你的应用程序中,你可以考虑使用PM2管理器启动和服务的规模多个实例。

可扩展性,使用的木偶使Node.js应用密集的PDF生成任务?

该应用程序的目标是产生一个使用PDF格式的木偶,我们获取数据,建立HTML模板然后用铬无头生成PDF,我们接着,返回一个链接到新生成的PDF文件。

这个问题,是需要花费大约7000毫秒生成PDF,主要是因为三个操纵木偶的功能:启动(启动无头broweser),跳转(导航到HTML模板)和PDF(生成PDF)。

所以具有约7〜8秒回答一个请求,与更多的传入请求或突然激增,它可以很容易地需要大约40到50秒30个同时请求,这是我发现是不可接受的。

经过大量的时间花费在研究上,我会实现群集模块采取多个进程的优势。

但是,除了集群外,还有什么其他可行的方案,以优化的单一实例的时间?

回答如下:

有什么考虑?

  1. 考虑到每个应用程序开始调用一次puppeteer.launch。您的转换脚本将只检查是浏览器实例已经存在,并通过调用newPage(),基本上新建选项卡使用它,而不是创建浏览器每次。
  2. 您可以考虑调用时进行拦截Requestpage.on('request', this.onPageRequest); goto()和过滤掉某些类型的页面加载,现在的文件,但你并不需要他们的PDF渲染;你可以滤除外部资源,以及如果您遇到这种情况。
  3. 当使用pdf()您可以从您的服务回报回Buffer,而不是使用文件系统,并返回链接PDF文件的创建位置。这可能会或可能不会加快东西,取决于你的服务设置;反正少IO应该会更好。

这可能是你能为你的应用程序的单一实例做;根据以上规则的执行(几页),PDF与一些图像1-2秒使我。

为了加快东西使用群集。除了将它嵌入到你的应用程序中,你可以考虑使用PM2管理器启动和服务的规模多个实例。

发布评论

评论列表 (0)

  1. 暂无评论