非同期処理のデバッグ(Rails)
Railsにおける非同期処理のデバッグ方法を備忘録としてまとめた。
なお、非同期処理はSidekiqを用いて実現しているものとする。
- gemを使って処理を止める
非同期処理中でも以下のgemを使用すれば、バックグラウンドで動いているプロセスをbinding.remote_pry
で止められるらしい。(まだ試したことはない)
github.com
- Workerを直接実行させたうえで、binding.pryを使って処理を止める
例えばTestWorker
というWorkerがあるとして、そいつを直接実行するにはrails consoleで以下を実行すればいい。(非同期処理を無理矢理同期的に実行させている)
この方法であれば、binding.pry
でも処理を一時停止させることができる。
TestWorker.new.perform