〜 06.WindowsタスクでRubyアプリを定期的に実行する 〜
■Windowsタスクとは?
Windowsタスクとは決まった周期でプログラム(タスク)を自動実行を行うWindowsに標準搭載されている
タスク実行ツールです。
用途は色々ありますが、
・データベースサーバーのバックアップを毎朝行う。
・株式のホームページで更新されている株価情報を10分おきに取得する。
・電力量計にLANを接続して積算電力量を定期的に取得する。
・日報を毎朝出力する。
というケースなど定期的に実行するプログラムで利用する場合に大変便利です。
今回は簡単なRubyアプリを作ってWindowsタスクから実行してみます。
■現在時刻表示アプリ
現在時刻を表示するRubyアプリを作ってみます。
〜 Hello World! AptanaSutdio Rubyプロジェクト編 〜
を参考にプロジェクトを作成しRubyファイルを新規作成して、次のようにコーディングしてください。
[wintask_timer.rb]
require 'win32ole'
wsh = WIN32OLE.new('WScript.Shell')
wsh.Popup(Time.now)
たった3行のプログラムですが、実行すると現在の時刻がダイアログで表示されます。
■タスクの追加
現在時刻表示アプリは実行した時に現在時刻をポップアップで表示するだけのアプリです。
Windowsタスクを使って、10分おきに現在時刻を表示するようにしてみます。
スタートから すべてのプログラム(P) > アクセサリ > システムツール > タスク
を選択してください。
タスク一覧画面が表示されます。(まだタスクを追加していませんので一覧にはタスクはありません)
空いているスペースで右クリックメニュー > 新規(W) > タスク(S)
を選択して、新規タスクを追加してください。
一覧に新規タスクが追加されるので、適当な名前に変更します。
今回はファイル名をそのまま使って『wintask_timer』という名前にしました。
作成したタスクをダブルクリックすると、タスクのプロパティが表示されます。
[参照(R)...]ボタンを押すとファイル選択ダイアログが表示されます。
ファイルの種類(T)で『すべてのファイル(*.*)』を選択し、時刻表示アプリのファイル(C:\AptanaStudio\workspace\helloworld\wintask_timer.rb)
を指定してください。
[スケジュール]タブより、スケジュールを登録します。
例えば『10分おきに時刻表示アプリをエンドレスで実行したい』という設定は以下の通りになります。
少々わかりにくいですが、
『23:30から翌日の23:19まで(まる1日)10分おきにプログラムを実行する』というタスクを
『日単位』(毎日という意味です)行うという考え方になります。
設定した開始時刻から10分ごとにコマンドプロンプトと現在時刻表示ダイアログが表示されればOKです。
■実行できるタスク
実行できるタスクは、基本的にファイルをダブルクリックすることにより実行できるプログラムに限ります。
具体的には、Rubyファイルの関連づけができている環境でのみRubyファイルをタスクとして実行できるとい
うことになります。
〜 Rubyのインストール 〜 で使用した、『One-Click Installer』でRubyをインストールした場合、関連づけ
の作業を自動で行ってくれていますので関連づけの作業は不要ですが、Ruby単体でインストールした場合や、
その他の関連づけを行わないインストールパッケージについては、別途Rubyファイルの関連づけ作業が必要
となります。
■おまけ
RubyがインストールされていないパソコンでRubyアプリを実行したい場合、当然そのままのRubyファイル
では実行できません。
JavaアプリがJavaがインストールされていないパソコンで実行できないのと同じ理屈です。
・不特定多数の人に配布したい。
・Rubyをインストールされていないし、インストールしたくない。
このような環境でRubyアプリを実行させたい場合は、Rubyファイルをexeファイルにコンバートを行い、
exeファイルを配布します。
Rubyファイルのexe化については、また記事にしたいと思います。
■おわりに
以上、WindowsタスクでRubyアプリを定期的に実行する でした。
次回は、〜 07.Hello World! AptanaSutdio Railsプロジェクト編 〜 です。
いよいよ、Rubyという言語をここまで有名にさせたWebアプリフレームワーク Ruby on Rails を使って
Webアプリを作ってみます。
例のごとく HelloWorld!(^^
▲メニューへ
(*´▽`)ノ。゚・*:.。.ДЯIGДтO.。.:*・゚。 最後まで見て頂きありがとうございます。 このサイトはバナークリックの広告収入により運営されています。 今回の内容が「よかった」とか「ためになった」と思われましたらで結構ですので、 下バナーのクリックにご協力よろしくお願いします。
![]() |