指定した時刻までただ寝ているsleepUntil

sxchu_1362335_sleep.jpg

あけましておめでとうございます。初日の出は見に行ったけれど、正月とかあまり気にせず元日からコードを書いています。

さて、お正月にちなんで、ひたすら寝ているプログラムsleepUntilというのを書いてみました。sleepじゃなくてsleepUntilなので、指定した時刻までただ寝ているプログラムです。

sleepUntil (mogya's gist: 1550431 -- Gist)

なんに使うかといいますと、プログラムを夜中に走らせるために使います。
スクレイピングは人が活動していない時間帯に走らせるのが基本なので、夜中1時スタートというのが普通です。これまでは、時計を睨みながらsleep 3000; とかしていたのですけれど、そんな計算は自分でしてくれるプログラムがsleepUntilというわけです。

$ sleepUntil "1:00"
って書けば、sleepUntilは起動と同時に眠りについて、夜中一時に(起きて即座に)終了します。
$ sleepUntil "1:00";(夜中に走らせたいコマンド)
という具合にしておけば、sleepUntilが深夜一時に終了したあと、(夜中に走らせたいコマンド)が実行されます。実質的に、夜中一時に該当プログラムを起動するようなことができるわけです。

cronでいいじゃないかと言われたらそのとおりなのですけど、一回しか実行しないようなものをcronに書くのはなんだか気がひけるのです。 実行環境が違うとかそういうことも気にしなくていいですし。

時刻のパースはTime.parseに丸投げです。パースしてみて過去の時刻になったときは翌日の時刻に読み替えるようになっています。

カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: 指定した時刻までただ寝ているsleepUntil

このブログ記事に対するトラックバックURL: http://mogya.com/mt/mt-tb.cgi/1391

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、 もぎゃが 2012年1月 2日 21:00に書いたブログ記事です。

ひとつ前のブログ記事は「 【Titanium Advent Calendar 2011:二日目】evalJSの恐怖 」です。

次のブログ記事は「 Windows7で音声合成(Text to speech) 」です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

Powered by
Movable Type