【问题标题】:Cron + whenever not working with RVMCron + 不使用 RVM 时
【发布时间】:2014-07-28 08:44:41
【问题描述】:

我正在使用 RVM 环境。 RUby 版本:2.1.2 轨道:4.1.1

schedule.rb : 

    every 1.minute do 
    runner "note.send_mail" 
    end 

我使用whenever --update-crontab 来更新 cron 选项卡。

当我使用crontab -l 检查作业时,它显示如下,但没有设置适当的时间。 并且 cron 作业不起作用。

 * * * * * /bin/bash -l -c 'cd /Desktop/folder1/blog2 && bin/rails runner -e production '\''note.send_mail'\''' 

谁能帮我解决这个问题。谢谢!

【问题讨论】:

  • crontab 时间格式为 minutes hours day_of_month month day_of_week,因此每 1 分钟确实应该像它为您所做的那样导致 * * * * *。每 2 分钟为 */2 * * * *,每 1 小时为 0 * * * *(“分钟为 0 的任何时间”)。每 6 小时将是 0 */6 * * *
  • 跑步者可能不起作用,我想应该是 runner "Note.send_mail" 或类似的东西。

标签: ruby-on-rails ruby cron rvm whenever


【解决方案1】:

转到您的 ~/.rvmrc 文件并添加以下内容:

rvm_trust_rvmrcs_flag=1

然后再次whenever --update-crontab。根据README of whenever

如果您的生产环境使用 RVM(Ruby 版本管理器),您将遇到导致 cron 作业挂起的问题。这与Whenever没有直接关系,调试起来可能很棘手。您的 .rvmrc 文件必须受信任,否则 cron 作业将挂起,等待文件受信任。一种解决方案是通过将此行添加到 ~/.rvmrc 中的用户 rvm 文件来禁用提示

rvm_trust_rvmrcs_flag=1

这告诉 rvm 信任所有 rvmrc 文件。

如果这对您不起作用,请尝试本页中提到的其他解决方案:RVM-Notes

【讨论】:

  • 我在任何地方都看不到 .rvmrc 文件……它通常在哪里。我看到的只是 etc/rvmrc 文件。我在那里添加了那个条目。但效果不佳
  • @user2569524 假设您使用的是 Linux 发行版,.rvmrc 文件应该在您的用户主文件夹中。如果没有这样的文件,请创建一个。但是,请确保它不存在,因为名称以点 (.) 开头的文件在 Linux 上是隐藏的。
  • 该文件将如何改变 cron 作业未加载 rvm 环境的事实?
  • 对我来说没有.rvmrc 文件,但它很容易创建,并且在此之后完美运行。
【解决方案2】:

您可以定义一个在命令行上加载 rvm 的自定义运行器,例如

job_type :runner_with_rvm, 'source /etc/profile.d/rvm.sh; cd :path;rvm 2.0@gemset do bundle exec script/rails runner -e :environment ':task' :output'

every 1.minute do
  runner_with_rvm "Note.send_email"
end

用你想要的 ruby​​ 版本和 gemset 替换 2.0@gemset

可能/etc/profile.d/rvm.sh 也是您环境中的其他东西。

【讨论】:

  • runner_with_rvm 定义似乎有语法错误:/home/user/.rvm/gems/ruby-2.2.2@big/gems/whenever-0.9.4/lib/whenever/job_list.rb:25:in `instance_eval': config/schedule.rb:1: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' (SyntaxError) ... runner -e :environment ':task' :output' ...
  • 问题是他没有将“任务”周围的引号更改为 \':task\'
猜你喜欢
  • 2011-11-05
  • 2012-04-20
  • 2012-03-12
  • 2014-01-24
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
相关资源
最近更新 更多