3
从cron运行rake任务时,我得到未初始化的常量YAML :: ENGINE,因为我已将服务器升级到ruby 1.9.2。我有与应用程序相同的错误,但把...来自cron的Rake任务 - 未初始化的常量YAML :: ENGINE
require 'yaml'
YAML::ENGINE.yamler= 'syck'
在boot.rb文件中修复它。如果我直接从我的Ubuntu服务器上的命令行运行任务,它可以正常工作,服务器使用RVM。
但是运行从cron任务似乎并不皮卡此修复程序,我已经尝试了这个...
task :twitter, :needs => :environment do
require 'yaml'
YAML::ENGINE.yamler= 'syck'
@tweets = Property.updatetwitter
end
无济于事。
我不能说,因为它直接从cron运行,你知道我可以如何强制cron作业到1.9.2吗? – creativetechnologist
我更新了答案,但我没有太多的经验,所以提出的解决方案是蹩脚的,这里有更好的方法。 cron也可能运行在不同的帐户下,所以它不知道RVM并使用系统ruby(/ usr/bin/ruby或其他) - 在这种情况下,请在您的服务器上重新安装ruby。 –
我正在尝试这个[解决方案](http://stackoverflow.com/questions/2398722/script-executes-successfully-in-commandline-but-not-as-a-cronjob/2399118#2399118)这可能是向前,非常感谢@LukasStejskal – creativetechnologist