読者です 読者をやめる 読者になる 読者になる

だるろぐ

とてもだるだるした日記です http://about.daruyanagi.jp/

お知らせ

WebMatrix 3: Twitter Bot でも作ってみる。 → Windows Azure Websites に置いてみたった。

WebMatrix Twitter Windows Azure

f:id:daruyanagi:20131020131347p:plain

WebMatrix 3: Twitter Bot (+リアルタイムログ表示付き)でも作ってみる。 - だるろぐ を Windows Azure Websites に置いてみた――のだけど、なんかすぐに止まってしまう。最初は SignalR 使ってるからかなぁと思い、リアルタイムログ表示の機能をとっぱらってみたのだけれど、やはり止まる。

Windows Azure Webサイトの無料や共有インスタンスの場合、5~20分ほどアクセスが無かった場合はシャットダウンされてリソースが解放されます。そーすると、初回アクセス時に、レスポンスが遅く感じる事象が発生します。

Windows Azureモバイルサービスのジョブスケジューラーで15分起きにリクエストを送信することで、常時ウォームアップし続けることが可能になります。
素敵だけど、怒られそうな話ですね!

蒼の王座 » Windows Azureで定期ジョブを実行する方法

怒られたらイヤだけど、とりあえずこの方法を試してみた。結論的には、上手くいった。Twitter のメインアカウント(Hidetoshi Yanagi (YanagiHidetoshi) on Twitter)に新着情報を配信できるようになった。

f:id:daruyanagi:20131020131401p:plain

スケジューリングは毎分・毎時・毎日・毎月と要求時が設定できるみたい。正時にキッカリ実行したいなんて言う場合には使えないので、10分おきにサイトをキックするだけにして、定期実行の仕組みは自分で実装した(ついでにコードも前よりカッコよく、シンプルにしたった!)。

f:id:daruyanagi:20131020131549p:plain

function warmup() {
    warmUpSite("http://darufeed.azurewebsites.net/");
}
function warmUpSite(url) {
    console.info("warming up: " + url);
    var req = require('request');
    req.get({ url: url }, function(error, response, body) {
        if (!error) {
            console.info("hot hot hot! " + url);
        } else {
            console.error('error warming up ' + url + ': ' + error);
        }
    });
}

スクリプトは JavaScript で記述。コピペで拝借したけれど、ウォームアップに使うならこれで十分みたい。