Я быстро взглянул на код, и он, похоже, не слишком много делает. В основном это поддерживает белый и черный список IP-адресов. Несмотря на то, что это не может быть большим сумасшедшим ударом по производительности, вам, вероятно, было бы лучше выполнить такой анализ запросов в промежуточном программном обеспечении Rack, то есть еще до того, как он перейдет к обработке запросов Rails.
При этом мне не нравится тот факт, что он будет повторяться каждые 5 минут В ТЕЧЕНИЕ обработки данного запроса. Таким образом, он заблокирует текущий запрос, пока он повторно синхронизирует свой набор правил / и списки. Это означает, что вы находитесь в зависимости от команды Detrusion.com, чтобы поддерживать их сайт / API. Поэтому, когда они падают, ты падаешь.
Хотя это не так актуально в режиме реального времени, я бы чувствовал себя более комфортно, если бы процесс обновления не был ограничен. Может быть, вы храните правила / списки в виде плоского файла или локальной базы данных (Redis был бы идеален), которую вы загружаете при запуске приложения. Затем у вас есть частый cron, который перезагружает набор правил из Detrusion и записывает его локально.
Что-то в этом роде. Просто что-нибудь, чтобы отсоединить обработку вашего запроса от проверки Detrusion API.