Запуск потоков во время обработки запросов - плохая идея.
Кроме того, что вы не можете контролировать свои рабочие потоки (запускать / останавливать их контролируемым образом), вы быстро столкнетесь с проблемами, если запустите потоквнутренняя обработка запросов.Подумайте о том, что происходит: запрос завершается, и процесс готовится обработать следующий запрос, в то время как ваш рабочий поток все еще работает и обращается к глобальным ресурсам процесса, таким как соединение с базой данных, открытые файлы, те же переменные класса и глобальные переменные и так далее.Рано или поздно ваш рабочий поток (или любая используемая из него библиотека) каким-то образом повлияет на основной поток и прервет другие запросы, и отладку будет практически невозможно.
Вам действительно лучше использовать отдельные рабочие процессы,Например, delayed_job - это очень маленькая зависимость, и она проста в использовании.