Загружать только часть среды для задачи rake?

Я видел кучу статей, касающихся загрузки всего Rails. среда для задачи. Однако я обеспокоен тем, что в этом нет необходимости, потому что я использую только две модели для своей задачи (плюс «resque» и «resque/scheduler»). Как я могу загружать только определенные части среды для своей задачи?

Кроме того, этот вопрос: кажется тем же самым, но он устарел, и, кажется, никто не ответил на него в достаточной мере... Я попрошу сейчас, заранее, чтобы кто-нибудь дал код, а не просто объяснение.


person varatis    schedule 19.03.2012    source источник


Ответы (1)


Возможно, вам не понравится этот ответ, но...

Вы не должны загружать только часть вашей среды. Любой обходной путь будет некрасивым, неприятным и хрупким. Это быстрее, проще и стандартнее, если вам потребуется вся ваша среда. Скорее всего, любое решение, которое вы придумаете, сократит время запуска задачи всего на одну-две секунды, и оно просто не будет стоить того, сколько времени и энергии вы вложили в его реализацию.

Тем не менее, если вы действительно хотите это сделать, если вы загружаете только модели ActiveRecord, вы можете попробовать что-то вроде этого перед своей задачей:

require 'active_record'
require './app/models/my_model.rb'

Скорее всего, вы получите кучу ошибок о неопределенных методах и отсутствующих константах. Вы можете вручную исправить каждый из них, требуя файлы один за другим, чтобы исправить проблему, или просто последовать моему совету и потребовать свою среду. (Подсказка: просто требуется ваша среда.)

person Veraticus    schedule 19.03.2012