DelayedJob

参考:

collectiveidea/delayed_job: Database based asynchronous priority queue system – GitHub

Backends · collectiveidea/delayed_job Wiki – GitHub

Documentation for delayed_job | RubyDoc.info

Module: Delayed::Backend::Base — Documentation for delayed_job | RubyDoc.info

使い方

参考:

非同期処理編 (delayed_job) | TechRacho

delayed_job の機能についてもうちょっと – Qiita

delayed_job を使う – Qiita

delayed_job ちょっとだけ詳しく | KOSHIGOE 学習帳

delayed_job まとめ | scramble cadenza

Rails で AcitiveJob と DelayedJob を使ってバックグランド処理を行う | Rails Webook

Delayed Job Best Practices | SitePoint

ワーカーを起動する

rails コマンドで起動する。(フォアグラウンド)

$ rails jobs:work

デーモンとして開始する。(バックグラウンド)

$ bundle exec delayed_job start

もしくは、Bundler で bundle_bin を指定している場合、

$ bundle_bin/delayed_job start

デーモンを停止する。

$ bundle exec delayed_job stop

もしくは、Bundler で bundle_bin を指定している場合、

$ bundle_bin/delayed_job stop

参考:

Running Jobs – collectiveidea/delayed_job: Database based asynchronous priority queue system – GitHub

状態を取得する方法

参考:

DelayedJob でジョブの状態を取得する – Qiita

フックの使い方

参考:

collectiveidea/delayed_job で定義できるフックメソッド。| Sooey

logger

参考:

Delayed Job の log ファイルを分ける | baronyan’s blog

Logging in delayed_job? – Stack Overflow

失敗したジョブを削除しない

destroy_failed_jobsfalse に設定する。

Delayed::Worker.destroy_failed_jobs = false

参考:

delayed_job のデバッグ – Qiita

delayed_job_active_record

Gemfile に gem を追加して、bundle install を実行する。

gem "delayed_job_active_record"

config/application.rb に設定を追加する。もしくは、initializers/active_job.rb あるいは initializers/delayed_job.rb を作成して設定を追加する。

config.active_job.queue_adapter = :delayed_job

ActiveJob::Base を継承してジョブを実行するクラスを作成する。

# app/jobs/my_job.rb

class MyJob < ActiveJob::Base
  def perform(*args)
    # do something here
  end
end

参考:

collectiveidea/delayed_job_active_record: ActiveRecord backend integration for DelayedJob 3.0+ – GitHub

Documentation for delayed_job_active_record | RubyDoc.info

rails/activejob at master · rails/rails – GitHub

ActiveJob から Delayed::Job を取得する方法

job = MyJob.perform_later
delayed_job_id = job.provider_job_id
delayed_job = Delayed::Job.find(delayed_job_id)

参考:

Rails 4.2 get delayed job id from active job – Stack Overflow

rails/delayed_job_adapter.rb at v5.2.0 · rails/rails – GitHub

Progress Job

参考:

d4be4st/progress_job: Progress for Delayed job – GitHub

Progress bar in Rails | Infinum

enqueue

参考:

delayed_job/base.rb at v4.1.5 · collectiveidea/delayed_job – GitHub

attr_accessor

参考:

delayed_job: attribute accessor values are not stored in delayed_jobs table in rails 3 after upgrade from rails 2 – Stack Overflow

Psych / coder

参考:

YAML, delayed_job : Psych vs Syck. How to make pysch read attr_accessors for a ruby object – Stack Overflow

死活管理

参考:

delayed_job の死活を監視して自動で再起動させる | 虎の穴 開発室ブログ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA