今年の4月から社内のslackでハドルを使って、週一で30分の(技術的なテーマで)雑談をしています。 今回は僕が司会の回だったので、ActiveJobのバックエンドについて質問しました。
スレッドワーカーのSidekiqで並列化できるわけもなく - @ledsun blog でSidekiqのジョブだと、CPUバウンドな処理の並列化ができなくて困っていました。 ワーカーのプロセスが分かれているActiveJobのバックエンドでなんか良いのありますか?な質問をしました。 ActiveJobのバックエンドってActive Job の基礎 - Railsガイドをみると次のようなラインナップです。
- Sidekiq
- Resque
- Sneakers
- Sucker Punch
- Queue Classic
- Good Job
昔使ってたDelayed::Jobがなくなっていたり、Good Jobという見慣れない奴がいたり状況は変わっているみたいです。 おしゃべりしながら、次のようなアイデアが得られました。
- 【Active Job】Sidekiq vs Resque vs Delayed Job の比較表をみてResqueがプロセスベースで良さそう
- GitHub - grosser/parallel: Ruby: parallel processing made simple and fast つかって、ジョブのなかで並列化したらいいのでは?
後者は自分になかった発想で面白かったです。