rails 4.2.0 with gem in development env,not working

时间:2015-03-03 00:06:14

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

大家好我有这样的问题:

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

这就是我所拥有的:

的Gemfile

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的故障排除,无论什么时候在docs,所以我坚持这个(使用控制台我可以创建对象没有问题)。

1 个答案:

答案 0 :(得分:1)

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

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

因此,有两种方法可以解决问题,使用默认的gemset或在计划中指定你的。

设置gemset和env的示例:

  

设置:环境,:开发

Rake:

  

job_type:rake,&#34; cd:path&amp;&amp; $ HOME / .rvm / scripts / rvm&amp;&amp; rvm使用   2.2.0@somename& amp;&amp; rake&#39;:任务&#39; :输出&#34;

转轮:

  

job_type:runner,&#34; cd:path&amp;&amp; $ HOME / .rvm / scripts / rvm&amp;&amp; rvm使用2.2.0@somename&amp;&amp; bin / rails runner&#39;:task&#39; :输出&#34;