LoginSignup
25
26

More than 5 years have passed since last update.

RubyMine初心者が定期実行させるJobのデバッグに挑戦

Posted at

RubyMine初心者が定期実行させるJobのデバッグに挑戦

はじめに

以前からRubyMineに興味はあったのですが、ずっとVimで開発しています。

最近デバッグで手間がかかっていたので、デバッグにかけるコストを減らしたいと思っていました。
そんなとき、ちょうどAdvent Calendarの記事を見て”試してみる価値あるかも!”と思いました。

ということで、RubyMineをお試しで使ってみることにしました。

まずRailsアプリのデバッグ

こちらは迷うことなくできました。

Railsアプリをプロジェクトとしてオープンして、RunメニューからDebug実行です。

page1.png

環境も選べるんですね〜

page2.png

ちゃんと起動しました。

page3.png

ブレークポイントで停止することも確認できました。

page4.png

Schedulerで定期実行させるJobのデバッグ

いよいよ本命です。

今作っているアプリで、定期的にJobキューを確認し、Jobの状態に応じてLinuxコマンドを非同期で実行させるような処理があります。(JobTask.executeというクラスメソッド)

コマンド実行時にpidを取得したり、そのpidを使って停止させたりしています。

これまでは、puts文をあっちこっちに仕込み、rails console上でJobTask.executeを実行してデバッグしていました。

これが思いのほか大変だったので、RubyMineで簡単にできたらいいなと思って試そうとしました。

一つの疑問

いざJobTask.executeを実行しようとしましたが、Runメニューには特定のメソッドを実行するようなメニューが見当たりません。

page1.png

Rails runnerとかRails consoleとかデバッグできないの〜!?と思ってたら、ちゃんとありました。

Rails Console上でデバッグ

まずRails Consoleを起動します。

page5.png

こちらも環境が選択できます。

page6.png

page7.png

起動しました。

page8.png

この状態でRunメニューをのぞいてみるとRails Consoleでのデバッグができるようになっていました。

page9.png

そのままデバッガを起動させ、Rails Console上で動かしたいもの(ここではJobTask.execute)を実行します。

page10.png

仕込んでおいたブレークポイントで停止することが確認できました!

page11.png

いろいろと使いながら慣れていこうと思います。

25
26
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26