Я изменил длительный процесс на маршруте 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
включает кластеризацию, я ожидал, что эта операция будет супер быстро, но это как раз наоборот.
У кого-нибудь есть опыт с этим? Или указатели, помогающие выяснить, почему это происходит так медленно?