2013-06-28 3 views
6

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

ответ

6

В schedule.rb, вы можете указать среду, которые Вы хотите запланированную задачи, которые будут работать в:

# config/schedule.rb 
set :environment, 'development' 

В качестве альтернативы, вы можете установить среду на каждое задание основе:

# config/schedule.rb 
every 1.day do 
    runner 'Model.task', :environment => 'development' 
    runner 'Model.task', :environment => 'production' 
end 
+0

Можете ли вы запускать задачи, которые находятся в планировщике, не дожидаясь прохождения периода времени? –

+1

Вы спрашиваете, можно ли запускать задачи вручную (т. Е. Вне планировщика)? Если да, да. Однако, если вы пытаетесь использовать драгоценный камень Whenever, вам обязательно нужно установить какой-то временной интервал - AFAIK, минимальный интервал - одна секунда. В противном случае вы будете постоянно и одновременно выполнять свои задачи ... что на самом деле невозможно/возможно. – zeantsoi

12

bash В любом -типа оболочки обычно можно переопределить окружающую среду, когда вы запускаете его:

RAILS_ENV=development rake task:name... 

Вы также можете написать небольшой скрипт, чтобы сделать это для вас:

#!/bin/sh 

export RAILS_ENV=development 

rake task:name... 

Это может при необходимости, для других оболочек.

 Смежные вопросы

  • Нет связанных вопросов^_^