私はdelayed_jobsを使おうとしています。rake jobs:work タスクを使用すると、ローカルで完全に機能します。ただし、デーモンとして使用しようとすると、タスクが失敗します。失敗したタスクの削除を停止しました。「 RAILS_ENV=production bin/delayed_jobs start 」でデーモンを開始しています。ステータスを実行すると、ワーカーがアクティブであることが示されます。
「Job failed to load: undefined class/module ProductAquisition.」というエラーで失敗しているようです。
これは、使用しようとしているモジュールのスニペットです (lib/product_aquisition.rb)。
module ProductAquisition
require 'net/http'
def ProductAquisition.get_updates
.....
end
end
これは、これをトリガーするために使用しようとしているrakefileからのものです
require 'debugger'
require 'date'
require 'thread'
# require 'active_support'
require "#{Rails.root}/lib/product_aquisition.rb"
require "#{Rails.root}/app/helpers/soap_helper"
include SoapHelper
include ProductAquisition
task :get_updates => :environment do
ProductAquisition.delay.get_updates
end
デーモンとして実行しているときにモジュール 'ProductAquisition' を読み込んで使用できない理由がわかりません。誰でもこれに光を当てることができますか?
編集:完全なエラーメッセージ
完全なエラー出力は、 https ://gist.github.com/smithmr8/70f1f736fe1c679ceff1/raw/9586759c868adce3797ad9e7697789ef417821a6/gistfile1.rb で確認できます。
ここに投稿しようとしましたが、正しくラップされません。