rails 4.2.0 with whenever gem 在开发环境中,不工作
rails 4.2.0 with whenever gem in development env, not working
大家好,我有这样的问题:
我正在使用 rails 4.2.0 和 rvm gemsets(使用正确的 ruby 版本和正确的 gemset 安装 gems ).
我正在尝试使用 whenever 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
使用后
whenever --update-crontab store
我的 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 中,我看到该任务已执行,但我在数据库中没有看到任何新对象(我正在使用 mysql)。
所以我尝试用模型创建新项目。我使用 mysql-lite 并在 gem 具有相同类型的任务时添加。然后我更新了 crontab 并且每当开始工作正常时,直到我使用 mysql 而不是 mysql-lite。
我没有发现任何使用 mysql 和 whenever in whenever 文档的故障排除,所以我坚持这个(使用控制台我可以毫无问题地创建对象)。
在调度中使用输出帮助我找到问题。
我使用了特定的 gem 设置,但没有在我的日程安排中指定。
这就是我出错的原因。每当 gem 尝试使用默认 gemset 时,它与我用于项目的 gemset 不同。
所以有两个选项可以解决问题,使用默认设置 gem 或在计划中指定您的选项。
设置示例 gemset 和 env:
set :environment, :development
佣金:
job_type :rake, "cd :path && $HOME/.rvm/scripts/rvm && rvm use
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"
大家好,我有这样的问题:
我正在使用 rails 4.2.0 和 rvm gemsets(使用正确的 ruby 版本和正确的 gemset 安装 gems ). 我正在尝试使用 whenever 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
使用后
whenever --update-crontab store
我的 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 中,我看到该任务已执行,但我在数据库中没有看到任何新对象(我正在使用 mysql)。
所以我尝试用模型创建新项目。我使用 mysql-lite 并在 gem 具有相同类型的任务时添加。然后我更新了 crontab 并且每当开始工作正常时,直到我使用 mysql 而不是 mysql-lite。
我没有发现任何使用 mysql 和 whenever in whenever 文档的故障排除,所以我坚持这个(使用控制台我可以毫无问题地创建对象)。
在调度中使用输出帮助我找到问题。
我使用了特定的 gem 设置,但没有在我的日程安排中指定。 这就是我出错的原因。每当 gem 尝试使用默认 gemset 时,它与我用于项目的 gemset 不同。
所以有两个选项可以解决问题,使用默认设置 gem 或在计划中指定您的选项。
设置示例 gemset 和 env:
set :environment, :development
佣金:
job_type :rake, "cd :path && $HOME/.rvm/scripts/rvm && rvm use 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"