Node / Bull / Throng фоновые задания. Очень медленно, и много процессов используются? - PullRequest
0 голосов
/ 20 марта 2020

Я изменил длительный процесс на маршруте Node / Express, чтобы использовать Bull / Redis.

Я довольно много скопировал этого руководства на Heroku docs .

Суть этого учебного пособия такова: * Маршрут Express планирует задание, немедленно возвращает клиенту 200 и долго просматривает браузер для статуса задания (маршрут ping на Express). Когда клиент получает статус completed, он отображает его в пользовательском интерфейсе. Worker - это отдельный файл, который запускается с дополнительным yarn run worker.js.

Обратите внимание на конец, когда он рекомендует использовать Throng для кластеризации ваших работников.

Я использую эту информационную панель Bull для мониторинга заданий / очередей. На этой панели инструментов отображаются доступные рабочие и их состояние (неактивно, когда не запущено / не находится в режиме ожидания, когда запущено).

У меня работает MVP, но операция выполняется очень медленно. Среднее время для завершения составляет 1 минуту 30 секунд. Принимая во внимание, что раньше (до добавления Быка) для завершения оставалось несколько секунд.

Еще одно странное, что, по-видимому, требуется не менее 30 секунд, чтобы статус Рабочих изменился с Idle на not Idle. Кажется, что большая часть времени ожидания ожидает работника.

Поскольку новая операция представляет собой отдельный файл (работник. js), а throng включает кластеризацию, я ожидал, что эта операция будет супер быстро, но это как раз наоборот.

У кого-нибудь есть опыт с этим? Или указатели, помогающие выяснить, почему это происходит так медленно?

...