Зависит от того, нужно ли их обрабатывать в реальном времени (например, когда пользователь нажимает GO, он должен фактически срабатывать?). Если вы используете монгрел, помните, что любой монгрел, который делает «что-то», будет блокировать, и это грубо с точки зрения параллелизма (если у вас нет тонны монгрел вокруг). Если вы используете пассажира, попадание из-за длительного действия контроллера не представляет большой проблемы, если у вас также есть открытые экземпляры пассажира.
Для вещей, которые могут происходить вне диапазона (и иметь некоторую задержку, например, обработку отчетов или преобразование видео), у меня есть модель под названием «JOBS», а затем я использую script / runner (в сочетании с cron) для вызова Jobs .process_jobs каждые несколько минут.
Или вы можете создать небольшой скрипт и поместить его в скрипт / ваш скрипт и вызывать его каждые несколько минут.
Есть третий вариант, использовать процесс drb, но - по моему опыту - я обнаружил, что это немного больше "движущихся частей", чем просто запускать хрон каждые несколько минут (или даже просто позволять контроллеру огонь действия), и поэтому я склонен избегать его, если мне действительно не нужно (например, хорька).