0

我发现 puppeteer sharp 是服务器端、HTML 到 PDF 转换的最佳方式,因为它使用和下载最新的 chrome 并在后台无头运行,因此转换是一流的。桌子和其他一切都完美呈现。

但是对于在服务器上运行,应该如何管理并发,因为我认为每个网站用户的转换请求都会启动另一个 chrome 实例。puppeteer sharp 如何管理并发。

最好将其拆分为单独的 Web 服务并将转换请求排入队列并传递所有与 pdf 相关的请求以逐个提供服务,而不是在多个 chrome 实例的 Web 服务器上遇到并发或资源问题。

4

1 回答 1

0

我发现这是实现这一点的最具可扩展性的方法是使用后台进程。这是一个真实的例子:

  1. WebClient 请求发送 signalR 消息的 PDF。
  2. SignalR 集线器创建某种 ID,将请求放入 Azure 队列,并将 SignalR 客户端添加到具有该 ID 的 SignalR 组。
  3. 控制台应用程序将读取该队列,处理 HTML,并使用 SignalR 消息将结果发送回服务器。
  4. WebServer 将获取消息,并将该消息广播给该组中的所有客户端。

听起来可能很复杂,但也没那么复杂。你可以让它更简单。

于 2020-05-27T12:01:47.167 回答