Как запустить скрипт Python на сервере Rails?

1

У меня есть сервер Rails, который должен запускать python script в фоновом режиме. Я знаю, что я могу запустить его, как я запускаю команды терминала в рубине, но как выглядит производительность? лучше ли использовать инфраструктуру python, а не Rails? Есть ли лучшие способы (оптимизация) для запуска сценариев python на сервере Rails?

3 ответа

5
Лучший ответ

Если вы имеете в виду, что он должен периодически запускаться, просто установите его как задание cron, нет особых характеристик производительности, чтобы беспокоиться о нем.

Если вы имеете в виду, что он должен запускаться при запросе страниц с вашего веб-сайта Ruby, то просто запуск script каждый раз будет работать не так хорошо, как нужно, чтобы перезапустить интерпретатор Python снова и снова.

Если Python script является большим, но вызывается только из относительно небольшого количества запросов страниц, вы можете уйти с этим, иногда не стоит времени для оптимизации медленной операции, которая не называется часто.

Если основная часть вашего сайта основана на функциональности Python script, то да, вам, вероятно, лучше перейти на веб-фреймворк Python и загрузить его в качестве модуля.

Если Python script не очень большой, вам, вероятно, лучше переписать его в Ruby.

В худшем случае сценарий script является большим и используется часто, но недостаточно для вашего сайта, чтобы оправдать переход на Python. В этом случае я бы рассмотрел возможность переноса Python в демона, с которым Ruby может разговаривать в фоновом режиме.

  • 2
    Или, если скрипт Python является относительно длительным, вы можете использовать процессор фоновых заданий, такой как DelayedJob или Resque, чтобы запустить скрипт Python.
  • 0
    Да, это, вероятно, лучшая идея, чем запуск собственного демона, когда опция async является опцией.
Показать ещё 3 комментария
1

Вы можете настроить демона в rails для выполнения python script.

http://railscasts.com/episodes/129-custom-daemon - Учебник по настройке демонов в рельсах

1

Вы будете брать на себя затраты на запуск python каждый раз, когда вы запускаете его из ruby. Стоимость будет такой же в структуре python, если вы не сможете использовать python script в качестве библиотеки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню