BLogみんなのウェディングのエンジニア。聴いたお話をまとめておく倉庫的な。LINKシェアするsidekiqを用いてバックグランドジョブをさばきたい人のための備忘録。tips集みたいな感じで残します。sidekiqって?まずはやっぱドキュメントだ。https://github.com/mperham/sidekiqバックグランドジョブを管理、実行するためのライブラリ。非同期処理を使いたい時に便利です。バックグランドジョブとか非同期処理って何?ってなるかと思うのでその解説を少しはさんでおきます。通常動き続けているプロセスとは別に、この処理だけは別プロセス、スレッドでやってほしいってやつがありますよね。それを分けて処理してくれるのが非同期処理です。誰かにメール飛ばす、なんてやつは独立した処理としてわけられるやつです。イメージはメール飛ばすのは12時に別処理でやっておいてねーみたいな。Railsでちゃちゃっと便利にやってくれるのがsidekiq。ちなみに、activeJobというのもあります。非同期処理ってなんやねんって思う人も一読するとよさそう。ちなみにめっちゃ高速で5分~10分くらいで読めちゃうので読んじゃいましょう。ガイドsidekiqのジョブsidekiqのジョブはworkerと呼ばれます。activejobとかだと、それを動かすためのスレッドがワーカなんていわれてちょっとややこしいなーと思いがち。いうことで、app/workersにこんな感じでファイルを作ります。endendだいたい、activejobと一緒ですね。sidekiqのエンキューじゃ、ジョブを追加しましょう。TestWorker.perfom_async(xxx,yyy)これで追加できます。activejobだと、.perform_laterとかでしたので、そこが違うポイントでしょうか。.perform_inとかで時間指定のジョブにしたりもできます。Rspecでテストしたろかほな、Rspecでのテストはどないですか、と。これがまたちょっとやっぱいろいろ必要だったりするんですね。sidekiqのrspec用のgemもあるようなので、必要によってはそっちを使ってもよさそうです。なくてもテストできそうでした。Sidekiq::Queue.new.clearendこれでテスト毎に生成されるジョブをリセットできます。1これでジョブが追加されて1になったかをチェック可能。dedis:3.2のように設定する必要がありそう。まとめ結構単純にジョブ追加、テストはできます。ジョブ自体のテストは、中身の処理の各々のユニットテストをしっかり記述してテストすればよさそうです。2017の8日目の記事です...2017-07-016月エンジニア研修の前半1ヶ月を振り返り6月が終わろうとしています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。