【问题标题】:rails 4.2.0 with whenever gem in development env, not workingrails 4.2.0,无论何时在开发环境中使用gem,都无法正常工作
【发布时间】:2015-03-03 00:06:14
【问题描述】:

大家好,我有这样的问题:

我正在使用带有 rvm gemsets 的 rails 4.2.0(使用正确的 ruby​​ 版本和正确的 gemset 以及已安装的 gems)。 我正在尝试使用无论何时 gem 执行一些 cron 任务,但我无法使其工作。

这就是我所拥有的:

宝石文件

gem 'whenever', :require => false

型号

class SomeModel < ActiveRecord::Base
end

schedule.rb

set :environment, :development

every 1.minute do
  runner "SomeModel.create"
end

使用后

每当 --update-crontab 存储时

我的 Crontab

# Begin Whenever generated tasks for: /home/user/project/config/schedule.rb
* * * * * /bin/bash -l -c 'cd /home/user/project && bin/rails runner -e development '\''SomeModel.create'\'''

# End Whenever generated tasks for: /home/user/project/config/schedule.rb

在 cron.log 中,我看到该任务已执行,但在 db 中没有看到任何新对象(我正在使用 mysql)。

所以我尝试使用模型创建新项目。我使用 mysql-lite 并在 gem 具有相同类型的任务时添加。然后我更新了 crontab 并且每当开始工作正常,直到我使用 mysql 而不是 mysql-lite。

我没有发现任何使用 mysql 的故障排除和任何时候在任何时候的文档,所以我坚持这样做(使用控制台我可以毫无问题地创建对象)。

【问题讨论】:

    标签: ruby-on-rails development-environment whenever


    【解决方案1】:

    在计划中使用输出帮助我找到问题。

    我使用了特定的 gemset,但没有在我的日程安排中指定它。 这就是我出错的原因。每当 gem 尝试使用与我用于项目的 gemset 不同的默认 gemset 时。

    所以解决问题有两种选择,使用默认 gemset 或在计划中指定你的。

    设置 gemset 和 env 的示例:

    设置:环境,:开发

    耙子:

    job_type :rake, "cd :path && $HOME/.rvm/scripts/rvm && rvm 使用 2.2.0@somename && rake ':task' :output"

    赛跑者:

    job_type :runner, "cd :path && $HOME/.rvm/scripts/rvm && rvm use 2.2.0@somename && bin/rails runner ':task' :output"

    【讨论】:

      猜你喜欢
      • 2018-06-19
      • 2016-12-31
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2021-04-17
      相关资源
      最近更新 更多