ruby-on-rails – 通过cron问题加载rubygems的rake任务
发布时间:2020-12-17 03:43:56 所属栏目:百科 来源:网络整理
导读:我通过执行以下操作设法获得了一个运行rake任务的cron作业: cd /home/myusername/approotlocation/ /usr/bin/rake sendnewsletter RAILS_ENV=development 我检查了哪个ruby和哪个耙子以确保路径正确(来自bash) 该工作看起来像是要运行,因为我在完成后从cron
我通过执行以下操作设法获得了一个运行rake任务的cron作业:
cd /home/myusername/approotlocation/ && /usr/bin/rake sendnewsletter RAILS_ENV=development 我检查了哪个ruby和哪个耙子以确保路径正确(来自bash) 该工作看起来像是要运行,因为我在完成后从cron守护程序中收到以下电子邮件 Missing these required gems: chronic whenever searchlogic adzap-ar_mailer twitter gdata bitly ruby-recaptcha You're running: ruby 1.8.7.22 at /usr/bin/ruby rubygems 1.3.5 at /home/myusername/gems,/usr/lib/ruby/gems/1.8 Run `rake gems:install` to install the missing gems. (in /home/myusername/approotlocation) 我在lib / tasks中的自定义rake文件如下: task :sendnewsletter => :environment do require 'rubygems' require 'chronic' require 'whenever' require 'searchlogic' require 'adzap-ar_mailer' require 'twitter' require 'gdata' require 'bitly' require 'ruby-recaptcha' @recipients = Subscription.all(:conditions => {:active => true}) for user in @recipients Email.send_later(:deliver_send_newsletter,user) end end 有或没有要求项目,它仍然给我同样的错误… 任何人都可以对此有所了解吗?或者建议我如何在脚本目录中创建一个自定义文件来运行这个功能(我已经有一个cron作业,它将运行并处理我所有的delayed_jobs. 在乔纳森的建议下面,我跑了
作为一个cron工作,并收到以下输出: SHELL=/bin/sh MAILTO=myemailaddress USER=myusername PATH=/usr/bin:/bin PWD=/home/myusername SHLVL=1 HOME=/home/myusername LOGNAME= myusername _=/usr/bin/env 这是否意味着它没有正确加载ruby文件? #!/bin/sh date echo "Executing Matenia Rake Task" PATH=/usr/bin:/bin cd /home/myusername/approotlocation/ rake sendnewsletter 还有失踪的宝石通知…… 解决方法
解决这个问题的最简单方法(但是一种霰弹枪的方法)来自你的shell类型
环境| grep PATH 然后获取此输出并将该crontab添加到该用户 所以它看起来像这样 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 42 6 * * * root job1 47 6 * * 7 root job2 52 6 1 * * root job3 只要确保你的宝石在那条路径内 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |