sidekiq
railsで時間のかかる作業を非同期で実行するジョブキューの一つ 類似のものとして
RailsにはActiveJobという機構があって、ジョブキューを差し替えられるようになっている。 特有のオプションが使えなくなるデメリットがある
使えそう
記事が消えてしまった
redisにつながらない
dockerのネットワークなので redis://localhost:6379でなくてredis://redis:6379だった
$ rake sidekiq
は動かない
ちょっと記事が古いせいかいろいろコマンドが変わっている
公式ドキュメント見たら設定ファイル与えなくても、環境変数だけで動くっぽい
REDISGREEN_URLまたはREDIS_URL
ジョブの実行結果を通知する方法
公式だと3rd partyのライブラリを使ったらと書いてあるが紹介先が古そう
微妙に用途とあってないかも
sidekiq completeで検索するといい感じ
ajax側でポーリング
redisのPubSub機能を使えばいいのではという投稿
Action Cableを使う方法
dockerではworkerは1コンテナとして独立させたほうがよさそう
テストの書き方
何をテストしたらいいか
Job自体のテスト
普通のジョブとして、performメソッドを呼び出す
featureテスト
Jobにつまれたかどうかのテスト
ジョブを一つだけにしたい
ドキュメントが生成されている間は、生成ボタンを押せないようにしたい
公式にはenterprise版しかできない模様
自前でキューを見て投入するか決める必要がありそう