如何使用Whenever gem强制rake任务在开发环境下运行

Ask*_*kar 6 ruby whenever rake-task ruby-on-rails-4

我正在使用Whenever gem来运行rake任务.当我运行rake任务时,它在开发环境下运行,但是当它在预定时间运行时,它指的是生产环境.如何强制在开发环境下运行计划的rake任务.据我所知,我将不得不使用RAILS_ENV变量,但无法弄清楚将它放在何处.我想,它与Whenever gem无关.

tad*_*man 12

在任何bash类型的shell中,您通常可以在运行时覆盖环境:

RAILS_ENV=development rake task:name...
Run Code Online (Sandbox Code Playgroud)

您还可以编写一个小脚本来为您执行此操作:

#!/bin/sh

export RAILS_ENV=development

rake task:name...
Run Code Online (Sandbox Code Playgroud)

这可以根据需要适用于其他外壳.


zea*_*soi 7

schedule.rb,您可以指定要在其中运行计划任务的环境:

# config/schedule.rb
set :environment, 'development'
Run Code Online (Sandbox Code Playgroud)

或者,您可以基于每个作业设置环境:

# config/schedule.rb
every 1.day do 
  runner 'Model.task', :environment => 'development'
  runner 'Model.task', :environment => 'production' 
end 
Run Code Online (Sandbox Code Playgroud)