У меня есть сервер Rails, который должен запускать python script в фоновом режиме. Я знаю, что я могу запустить его, как я запускаю команды терминала в рубине, но как выглядит производительность? лучше ли использовать инфраструктуру python, а не Rails? Есть ли лучшие способы (оптимизация) для запуска сценариев python на сервере Rails?
Если вы имеете в виду, что он должен периодически запускаться, просто установите его как задание cron, нет особых характеристик производительности, чтобы беспокоиться о нем.
Если вы имеете в виду, что он должен запускаться при запросе страниц с вашего веб-сайта Ruby, то просто запуск script каждый раз будет работать не так хорошо, как нужно, чтобы перезапустить интерпретатор Python снова и снова.
Если Python script является большим, но вызывается только из относительно небольшого количества запросов страниц, вы можете уйти с этим, иногда не стоит времени для оптимизации медленной операции, которая не называется часто.
Если основная часть вашего сайта основана на функциональности Python script, то да, вам, вероятно, лучше перейти на веб-фреймворк Python и загрузить его в качестве модуля.
Если Python script не очень большой, вам, вероятно, лучше переписать его в Ruby.
В худшем случае сценарий script является большим и используется часто, но недостаточно для вашего сайта, чтобы оправдать переход на Python. В этом случае я бы рассмотрел возможность переноса Python в демона, с которым Ruby может разговаривать в фоновом режиме.
Вы можете настроить демона в rails для выполнения python script.
http://railscasts.com/episodes/129-custom-daemon - Учебник по настройке демонов в рельсах
Вы будете брать на себя затраты на запуск python каждый раз, когда вы запускаете его из ruby. Стоимость будет такой же в структуре python, если вы не сможете использовать python script в качестве библиотеки.