Rails, организация кода, где хранить скрипты карты / редуктора? - PullRequest
1 голос
/ 03 марта 2012

Я знаю, что это довольно странный вопрос, но, как изящный уродец, я хотел спросить некоторых профессионалов о лучших методах организации моего кода.

Так что у нас почти 10 задач сопоставления / сокращения (которые используются MongoDB), которые обычно выполняются в фоновом режиме (с помощью redis-scheduler), но там довольно много кода, и я не хочу его загружать, если это не указано явно, если я добавлю его в свой lib каталог, не будет ли он загружаться в приложение на рабочем месте, даже если он был загружен моим веб-сервером?Тот факт, что никакие действия пользователя в приложении не будут использовать этот конкретный код.

Поэтому мой вопрос: где мне их все хранить и как их организовать?

1 Ответ

1 голос
/ 03 марта 2012

Насколько я понимаю, автозагрузка Rails заключается в том, что код не будет загружен в память, пока вы не ссылаетесь на него.Например, я создал класс с именем Thing:

# app/concerns/thing.rb
class Thing
  puts "Loaded Thing"
end

Загрузка консоли Rails ничего не печатает, пока я не создам экземпляр Thing:

[ruby-1.9.2-p290@so_test_app test_app: 505]$ rails c
Loading development environment (Rails 3.2.1)
1.9.2p290 :001 > Thing.new
Loaded Thing
#<Thing:0x000001039c81b0>
1.9.2p290 :002 > 

Я бы сказал, что вы можете безопасно организовать свой код под lib (при условии, что вы добавили его в autoload_paths), не оказывая негативного влияния на объем кода в памяти.


Редактировать: Ну, я передумал.Классы загружаются во время загрузки в производственной среде:

[ruby-1.9.2-p290@so_test_app test_app: 508]$ rails c production
Loaded Thing
Loading production environment (Rails 3.2.1)
1.9.2p290 :001 > 

Мне нужно еще кое-что обдумать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...