これは、カスタムジョブのクラスファイルをロードする問題である可能性があります。テストするには、次のように試してみてください:
- レールコンソール
rails console --sandbox
に入力してください。
- テーブル
job = Delayed::Job.first
に仕事があることを確認してください。
- お試し
YAML.load(job.handler)
ArgumentError: undefined class/module MyCustomClass
のようなエラーが発生した場合は、カスタムジョブのロードに問題がある可能性があります。
- まだレールコンソールにある
require 'My_Custom_Class
を実行してください。次に、YAML.load(job.handler)
コマンドを再度実行します。これが適切なオブジェクトを返す場合は、間違いなくクラスを読み込む問題です。
問題を修正するには、ファイルconfig/initializers/custom.rb
を作成し、require 'My_Custom_Class'
と入力します。
その後、rake jobs::workoff
を実行し、このようなものを得ることができる必要があります:
[Worker(host:my.host pid:5085)] Starting job worker
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ...
[Worker(host:my.host pid:5085)] No more jobs available. Exiting
'RAILS_ENV =開発スクリプト/ delayed_job status'の結果は何ですか? – Ernest
デーモンの宝石なしで実行しようとしましたか? – Ernest
Gemfile.lockでは、デーモンは必須の依存関係ですが、明示的な使用は削除して試してみます。その理由は、システム上にデーモン1.1.4があったので、特定のバージョン(デーモン用に1.0.10を使用することを中心に多くのStackOverflow提案を使用しています)を使用しようとしました。 – Aditya