[Rails] Active JobのResqueアダプタが非推奨に - Resque 3.0以降への移行を推奨

rails/rails

背景

Rails 8.0において、Active Job の組み込み Resque アダプタが非推奨となりました。この変更は、Resque gem 自体が v3.0 で独自の Active Job アダプタを提供するようになったことに起因します。既に Sidekiq アダプタで実施された方針と同様、メンテナンスの責任を各ジョブキューイングライブラリ側に委譲する流れの一環です。

この非推奨化により、Resque を使用しているプロジェクトは Resque gem をバージョン 3.0 以降にアップグレードし、gem 側が提供するアダプタに移行する必要があります。Rails 9.0 では組み込みアダプタが完全に削除される予定です。

技術的な変更内容

非推奨警告の実装

ResqueAdapter クラスに check_adapter メソッドが追加され、アダプタの初期化時に非推奨警告が表示されるようになりました。

変更後:

class ResqueAdapter < AbstractAdapter
  def check_adapter
    ActiveJob.deprecator.warn <<~MSG.squish
      The built-in `resque` adapter is deprecated and will be removed in Rails 9.0.
      Please upgrade `resque` gem to version 3.0 or later to use the `resque` gem's adapter.
    MSG
  end

  def enqueue(job)
    JobWrapper.instance_variable_set(:@queue, job.queue_name)
    Resque.enqueue_to job.queue_name, JobWrapper, job.serialize
  end
  # ...
end

この警告は、以下のような設定を行った際に表示されます:

Rails.application.config.active_job.queue_adapter = :resque

テストの追加

非推奨警告が正しく表示されることを確認するテストケースが追加されました。

if adapter_is?(:resque)
  test "resque adapter should be deprecated" do
    before_adapter = ActiveJob::Base.queue_adapter

    msg = <<~MSG.squish
      The built-in `resque` adapter is deprecated and will be removed in Rails 9.0.
      Please upgrade `resque` gem to version 3.0 or later to use the `resque` gem's adapter.
    MSG
    assert_deprecated(msg, ActiveJob.deprecator) do
      ActiveJob::Base.queue_adapter = :resque
    end

  ensure
    ActiveJob::Base.queue_adapter = before_adapter
  end
end

CHANGELOG の更新

変更履歴に以下のエントリが追加されました:

*   Deprecate built-in `resque` adapter.

    If you're using this adapter, upgrade to `resque` 3.0 or later to use the `resque` gem's adapter.

    *zzak, Wojciech Wnętrzak*

移行方法

Resque を使用しているプロジェクトでは、以下の手順で移行を行ってください:

  1. Resque gem のアップグレード: Gemfile で Resque のバージョンを 3.0 以降に指定します。
gem 'resque', '~> 3.0'
  1. bundle update の実行:
bundle update resque
  1. 設定の確認: アダプタの設定方法は変わりませんが、Resque gem 側のアダプタが使用されるようになります。
config.active_job.queue_adapter = :resque

Resque 3.0 以降を使用することで、非推奨警告は表示されなくなり、gem 側で提供される最新のアダプタが利用できます。

まとめ

この変更は、各ジョブキューイングライブラリのメンテナが自身のライブラリに最適化された Active Job アダプタを提供できるようにするための戦略的な決定です。Sidekiq に続き Resque でも同様の方針が採用され、Rails コアチームはフレームワーク本体のメンテナンス負荷を軽減しながら、各ライブラリの進化に対応しやすい体制を整えています。

既存のコードへの影響は最小限ですが、Rails 9.0 のリリースまでに Resque gem のアップグレードを完了させることが推奨されます。

記事メタデータ

Generated by:
Claude Sonnet 4.5 for DiffDaily

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
承認済み
Review Count:
1回
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

ガイドライン準拠 ⚠ WARNING

記事構成とDiffDaily Styleへの準拠状況

記事構成、コードブロックの書式、対象読者への適合性はすべてPASS基準を満たしています。特に、背景・技術詳細・移行方法という構成は読者にとって非常に分かりやすいです。ただし、GitHubのPRリンク記法がガイドラインの推奨形式とわずかに異なっていたため、WARNINGとしました。

  • 記事構成(Title、Context、Technical Detail)
  • DiffDaily Styleガイド準拠
  • カスタムMarkdown活用
  • 対象読者への適合性
技術的整合性 ✓ PASS

技術的な正確性と表現の適切性

技術的な内容は完全に正確です。引用されているコードは非推奨化の実装として妥当であり、ファイルパスもRailsの構造と一致しています。技術用語の選択も適切で、説明には論理的な誤りや技術的な不正確さはありませんでした。

  • 技術用語の正確性
  • コード例の正確性
  • 説明の技術的正確性
PR内容との整合性 ✓ PASS

元のPR情報との一致度

PRの内容と記事の主張は完全に一致しており、ハルシネーションは検出されませんでした。PRタイトル、番号、バージョン番号などの固有名詞もすべて正確です。特に、Sidekiqの先行事例やResqueのリリースノートへの言及は、PRには直接書かれていないものの、文脈を補強する妥当な情報であり、質の高い解説となっています。

  • タイトル・説明の一致
  • Diff内容の正確な反映
  • 推測の排除