Я использую всякий раз, когда драгоценный камень. Я хотел установить переменные env перед запланированной задачей. Вторая строка в приведенном ниже коде была командой, которую я хотел запустить в файле schedule.rb. Но похоже, что я не могу это сделать, поэтому я прокомментировал это и попытался по-разному. Все еще ничего не работает. Печать env внутри рубинового кода, по-видимому, правильно отображает нужную переменную, но после запуска «bundle exec when» и проверки терминала с помощью команды env переменные, похоже, не существуют. Что здесь не так?Неправильно заданы переменные среды
every :hour do
# Run shell script to assign variables and continue the rake task
#system "for line in `cat config/myEnvFile.env` ; do export $line ; done"
f = File.open("config/myEnvFile.env", "r")
f.each_line do |line|
j = line.split(" ")
arr = j.first.split("=")
system "export #{arr[0]}=#{arr[1]}"
system "env"
# This line below is also another way but still nothing works
ENV[arr[0]] = arr[1]
end
rake "task:continue_doing_my_task"
end
Это не способ сделать это, нет никакой причины загружать одни и те же переменные среды каждый час. Вместо этого загрузите эти переменные, когда ваше приложение запустится в его среду через что-то вроде https://github.com/bkeepers/dotenv – Anthony
каждые 1 час для тестирования, когда его развертывают каждые 1 день, но это не проблема. – underScorePassionFruit