Прямо сейчас я использую puppeteer (NodeJS библиотека) для преобразования HTML в документы PDF. Пока это «работает», я портирую на Puppeteer-Sharp (C# библиотека).
У меня все работает, но меня несколько беспокоит одновременное использование нескольких браузеров.
Скажем, я запускаю один и тот же код в двух отдельных процессах на одном компьютере :
// Magic function. Downloads Chrome to a specific directory for the process.
var browser = GetBrowser();
var page = await browser.NewPageAsync();
await page.GoToAsync("http://www.google.com");
var pdf = await page.PdfAsync();
Мой вопрос:
Есть ли потенциальная проблема параллелизма здесь?
Мое (ограниченное) понимание состоит в том, что библиотека выдает инструкции Chrome с использованием веб-сокетов, и я не уверен, что существует вероятность того, что браузеры «столкнутся» друг с другом.
По сути, я спрашиваю, есть ли вероятность того, что байты PDF, полученные (через await page.PdfAsync();
), будут из «другого» браузера.
Если это вас утешает, браузеры загружаются и запускается из определенных c каталогов для каждого процесса, поэтому технически это не один и тот же экземпляр Chrome, запускаемый дважды (но на самом деле это так).