Как изолировать рабочих динамов от веб-динамов на геройку? - PullRequest
0 голосов
/ 05 мая 2018

Мы разработали приложение на Rails в Heroku, у нас есть около 3 веб-динамо и 2-3 рабочих динама. У нас есть некоторые функции экспорта и импорта, которые используют многие из наших рабочих dyno, когда это происходит, все падает, и мы получаем ошибку приложения на веб-сайте.

Часовой говорит нам, что это из-за Тайм-аута. Мы пытаемся выяснить, какая функциональность нашего программного обеспечения отнимает так много рабочего времени. Проблема в том, что она затрагивает всех наших пользователей, некоторые из которых используют только функции веб-слоя.

Но мне было интересно, есть ли способ изолировать проблемы наших рабочих динамов от работы веб-динамов? Я имею в виду, есть ли способ, чтобы наш сайт не зависал, когда один пользователь экспортирует большой объем данных и насыщает работников?

Заранее спасибо!

С уважением, Гонсало

1 Ответ

0 голосов
/ 16 мая 2018

спасибо за ответы, позвольте дать вам некоторую связанную информацию:
- Мы используем delayed_job для рабочих, который является асинхронным.
- Раньше у нас было соединение с БД, оно поддерживало 120 соединений, и мы никогда не видели его полностью занятым. Текущий AWS RDS только достиг 24% его использования, и мы видели только 28 одновременных подключений в день сбоя.
- Новая реликвия не указала задержку в БД.
- Веб-dynos начинают генерировать время ожидания во многих функциях, если сбой не связан с рабочими, это может быть из-за некоторых функций, которых нет в заданиях.

Обновление: - Мы установили некоторые ограничения в нашем экспорте, даже когда они заняты, это влияло на нашу сеть и приводило к ошибкам приложений. Когда мы установили лимит, количество ошибок приложения значительно уменьшилось.
- Мы все еще ищем другие неоптимизированные функции.

...