幻のResque2.0
2018年11月6日にresque 2.0がリリースされました。
https://rubygems.org/gems/resque/versions/2.0.0
この2.0の変更内容の大部分は、ruby2.3以下などのサポート終了がメインでした。
https://github.com/resque/resque/releases/tag/v2.0.0
さて、2015年頃に書かれた 「resque から sidekickに乗り換えた」という記事があります。
https://techblog.zozo.com/entry/resque_to_sidekiq
この記事を読んでいると、「resqueがデキュー時の処理にBLPOPを使っておらず、スケーラビリティ性が低い。最近の実装ではBLPOPを使っている」ということを書かれています。
しかし、2018年にリリースされたresque 2.0 には、デキュー時にBLPOPを使っている実装はありません。
どういうことなのかissueを調べたところ、2013年頃にBLPOPを使ったジョブのデキュー実装が確かにマージされていたことがわかりました。
https://github.com/resque/resque/pull/565
さらに調べていくと、BLPOP実装版のresqueは2015年に2.0としてリリース予定で、根本的な書き換えを行ったバージョンだったのです。
https://github.com/resque/resque/issues/1305#issuecomment-170167351
なぜ、2015年に書かれた2.0がリリースされなかったかを調べると、メンテナーが2.0をリリースしないと決断した理由を記事に書いていました。
https://words.steveklabnik.com/rescuing-resque-again
その記事を要約すると、「2.0をリリース直前まで作ったけど、メンテナーが転職したりOSSに時間を使えない状況になったから、大きな変更をするべきではないと判断した」ということが書いていました。これが幻の2.0です。
なお、2015年に作られた幻の2.0は、 two-oh-is-cancelled というブランチで今も存在しています。
https://github.com/resque/resque/tree/two-oh-is-cancelled
-
category:
- ruby