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

落書きノート

ふと自分が気になった事を書いてます

Node.js 定期的にダウンロードする

ここではCron(クーロン)というタスクスケジューラを使ってプログラムを動かします。スケジューラを使うと、定期的にウェブから情報を拾ってくるといった用途に使えます。

var API = "http://api.aoikujira.com/kawase/get.php?code=USD&format=json";

var request = require('request');
var fs = require('fs');

request(API, function(err, response, body){
  if(err || response.statusCode != 200){
    console.log("ERROR", err); return;
  }

  var r = JSON.parse(body);
  var jpy = r["JPY"];

  var t = new Date();
  var fname = "USD_JPY_" +
    t.getFullYear() + "-" + (t.getMonth() + 1) +
    "-" + t.getDay() + ".txt";
  var text = "1usd = " + jpy + "jpy";
  console.log(text);
  fs.writeFile(fname, text);
});

上記のプログラムは為替レートの情報を拾って加工するプログラムです。URLはテストサイトです。実際に使う場合は、為替情報が載ったサイトから拾ってくる必要があります。

上記のプログラムをCronで動かすには以下のようにします。例えば、毎日朝の7時にプログラムを起動するのならば、以下のようになります。

0 7 * * * /usr/bin/node /path/to/kawase-usd_jpy.js

分 時 日 月 曜日 実行するコマンド という順で記述していきます。Cronについては調べればすぐに出てきますので今回はこれぐらいにしておきます。尚、ファイルの冒頭で環境変数を設定することも出来るようです。必要に応じて記述してみてください。またWindowsの場合ですと、OSに標準で付属しているタスクスケジューラも利用できます。UIで操作出来るので楽かもしれません。

実行結果

# node kawase.js

[gallery ids=“2187,2186” type=“rectangular”]