кукловод для конвертации HTML в PDF на стороне сервера - PullRequest
0 голосов
/ 27 мая 2020

Я обнаружил, что puppeteer sharp лучше всего подходит для конвертации HTML в PDF на стороне сервера, поскольку он использует и загружает последнюю chrome и работает без заголовка в фоновом режиме, поэтому преобразование является высшим классом. таблицы и все остальное отображается идеально.

Однако для работы на сервере, как следует управлять параллелизмом, потому что я думаю, что каждый запрос на преобразование пользователей веб-сайта запускает другой экземпляр chrome. как кукловод остро управляет параллелизмом.

лучше разделить его как отдельную веб-службу и поставить в очередь запросы преобразования и передать все запросы, связанные с pdf, для обслуживания по одному, вместо того, чтобы сталкиваться с проблемами параллелизма или ресурсов на веб-сервере для нескольких chrome экземпляров .

1 Ответ

0 голосов
/ 27 мая 2020

Я обнаружил, что это наиболее масштабируемый способ реализовать это с помощью фонового процесса. Это один из реальных примеров:

  1. WebClient запрашивает PDF-файл, отправляя сообщение signalR.
  2. Концентратор SignalR создает какой-то идентификатор, помещает запрос в Azure Queue и добавляет клиента SignalR в группу SignalR с этим идентификатором.
  3. Консольное приложение считывает эту очередь, обрабатывает HTML и отправляет результат обратно на сервер с помощью сообщения SignalR.
  4. Веб-сервер получит сообщение и передаст его всем клиентам в этой группе.

Это может показаться довольно сложным, но это не так уж и много. Вы можете сделать это проще.

...