次の手順を実行して、cronジョブを取得してrakeタスクを実行することができました。
cd /home/myusername/approotlocation/ && /usr/bin/rake sendnewsletter RAILS_ENV=development
パスが正しいことを確認しました(bashからwhich ruby
)which rake
完了時に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
必要なアイテムの有無にかかわらず、それでも同じエラーが発生します...
誰かがこれに光を当てることができますか?または、この関数を実行するスクリプトディレクトリ内にカスタムファイルを作成する方法についてアドバイスしてください(すべてのdelayed_jobsを実行および処理するcronジョブがすでに機能しています。
以下のジョナサンの提案の後、私は走りました
環境
独自の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ファイルが正しくロードされていないことを意味しますか?....また、ジョナサンのアドバイスを受けて、次のcron.sh
ファイルを作成しました
#!/bin/sh
date
echo "Executing Matenia Rake Task"
PATH=/usr/bin:/bin
cd /home/myusername/approotlocation/
rake sendnewsletter
まだ行方不明の宝石の通知を受け取っています...乾杯!