Gem whenever 使用问题。

bighuzi · March 27, 2018 · Last by bighuzi replied at March 27, 2018 · 2750 hits

在使用定时的时候,开发环境,可以执行通过,在本地用生产模式启动也可以通过, 但是在生产环境,跟测试环境都不能执行通过。 错误:

Running via Spring preloader in process 1599
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.

uninitialized constant Rails::Command::RunnerCommand::GrabOrderManager

schedule.rb 文件配置

rails_env = ENV['RAILS_ENV'] || :production
set :environment, rails_env
set :output, 'log/cron.log'

every :day, :at => '01:00 am' do
    runner "GrabOrderManager.statistics"
end

every :day, :at => '04:30 am' do
    runner "GrabOrderManager.dynamic_done"
end

crontab -l

# Begin Whenever generated tasks for: /www/web/sshl/config/schedule.rb at: 2018-03-26 17:32:04 +0800
0 1 * * * /bin/bash -l -c 'cd /www/web/sshl && bundle exec bin/rails runner -e production '\''GrabOrderManager.statistics'\'' >> log/cron.log 2>&1'

30 4 * * * /bin/bash -l -c 'cd /www/web/sshl && bundle exec bin/rails runner -e production '\''GrabOrderManager.dynamic_done'\'' >> log/cron.log 2>&1'

# End Whenever generated tasks for: /www/web/sshl/config/schedule.rb at: 2018-03-26 17:32:04 +0800

求支援

先看看生成的 cron job 是什么样子的。

cron -l
Reply to shadow
# Begin Whenever generated tasks for: /www/web/sshl/config/schedule.rb at: 2018-03-26 17:32:04 +0800
0 1 * * * /bin/bash -l -c 'cd /www/web/sshl && bundle exec bin/rails runner -e production '\''GrabOrderManager.statistics'\'' >> log/cron.log 2>&1'

30 4 * * * /bin/bash -l -c 'cd /www/web/sshl && bundle exec bin/rails runner -e production '\''GrabOrderManager.dynamic_done'\'' >> log/cron.log 2>&1'

# End Whenever generated tasks for: /www/web/sshl/config/schedule.rb at: 2018-03-26 17:32:04 +0800

你的服务器的 ruby 是通过什么安装的。感觉是 cronjob 没有加载到你的 rails 环境。

Reply to shadow

brew,应该不是环境的问题。

@bighuzi 同意 shadow。感觉/www/web/sshl这个目录好像不太对?我用capistrano部署之后 cron task 格式类似0 1 * * * /bin/bash -l -c 'cd /www/web/sshl/releases/20180327043517 && bundle exec bin/rails runner -e production '\''GrabOrderManager.statistics'\'' >> log/cron.log 2>&1',比你多了releases/20180327043517

Reply to shadow

应该不是环境问题。。我把执行方式改了。改成 rake 的方式,测试可以通过了。@shadow

bighuzi closed this topic. 27 Mar 13:52
You need to Sign in before reply, if you don't have an account, please Sign up first.