fujjima’s blog

主に備忘録

非同期処理のデバッグ(Rails)

Railsにおける非同期処理のデバッグ方法を備忘録としてまとめた。
なお、非同期処理はSidekiqを用いて実現しているものとする。

  • gemを使って処理を止める

非同期処理中でも以下のgemを使用すれば、バックグラウンドで動いているプロセスをbinding.remote_pryで止められるらしい。(まだ試したことはない)
github.com

  • Workerを直接実行させたうえで、binding.pryを使って処理を止める

例えばTestWorkerというWorkerがあるとして、そいつを直接実行するにはrails consoleで以下を実行すればいい。(非同期処理を無理矢理同期的に実行させている)
この方法であれば、binding.pryでも処理を一時停止させることができる。

TestWorker.new.perform