2016-10-24 5 views
0

私は、アプリケーションでdelayed_jobsとrest_clientを使用しています。jobsフォルダとjobクラスjobs/test_job.rbを作成しました。DelayedJobとRestClientをRailsで使用する4.2.5 Jruby 2.2.2

class TestJob < Struct.new(:name) 
def perform 
    RestClient.get "http://name" 
end 
end 

RestClientとDelayedJobが正常に動作しているが、クライアント(http://name)がダウンしているとき、delayed_jobは私がSocketErrorをエラーして再試行していない提供します。

私のコントローラにはこれがあります。

Delayed::Job.enqueue TestJob.new(my_other_rails_app), :queue => "my_test" 

エラーが発生した場合、delayed_jobは再キューイングされませんか?

答えて

0

私はこの問題を解決しました。別のデータベースでエラーが発生した場合、ジョブが遅れてしまいました。データベースに問題がありました。私は、opengeを使用していますが、エラーは文字列がlast_errorフィールドには長すぎます。長いエラーを保存しないか、フィールド文字の長さを変更しないようにしてください。 遅延ジョブ4-1-2 \ libに\遅れ\バックエンドの\ base.rb から:

def error=(error) 
    @error = error 
    self.last_error = "#{error.message}\n#{error.backtrace.join("\n")}" if respond_to?(:last_error=) 
end 

へ:

def error=(error) 
@error = error 
self.last_error = "#{error.message}" if respond_to?(:last_error=) 
end 
関連する問題