- ベストアンサー
毎日明け方4時にCGIを動かすJavaScript
表題の通りです。 毎日明け方4時に同じCGIプログラムを動かしたいのですが、どうすれば良いのかわからないので、調べてみたら、毎日同じ時間にCGIを実行させるJavaScriptを仕込んだWebページをアップしておいたら・・・というのがありました。 しかし具体的にこんなコードとまで書いてなかったので、質問をあげました。 どんなコーディングになるのでしょう。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
考え方だけですが、cronが使えない環境でどうしてもやるとしたら、 こんな感じでしょうか。 <meta>タグで1分おきとか、数分おきにrefreshするページを作成し、 そこからCGIを呼び出すようにしておく。 http://www.tohoho-web.com/html/meta.htm 時刻の判断は、javascriptでやるか/CGIでやるかどちらかですね。 重複起動とか考えると、CGI側のほうが良いように思えます。 CGIで4時を過ぎていたら、処理済みの印がないか確認し、なかったら 重複実行を防ぐためのロック処理をし、ロックできたら本来やる中身を 実行し、処理済みの印を残す。
その他の回答 (1)
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んっと………取り合えず順を追って。 まずCGIですが、これは基本的に「HTTPから叩かれて動くプログラム」なので、CGIが「指定された時間に自動的に動く」ことはないです。 ので、取り合えず都合よく、質問文から「CGI」を削除して「プログラム」と読み替えて見ます。 次にJavaScriptですが。これはHTMLの中に埋め込まれて「閲覧するときに動くプログラム」なので(厳密には違うものもありますがほぼこんなもんです)、やはり「定期的に動く」仕組みっていうのはないです。 で。そのあたりを踏まえて 「毎日同じ時間にCGIを実行させるJavaScriptを仕込んだWebページをアップしておいたら」という発言に近しいものを考えると…。 1.指定された時刻(今回ですと明け方の4時ですか)頃に「誰かがCGIを叩いてくれるであろう」ことを期待してCGIを作成 これは、簡単にかくと「午前4時ごろに誰かがWebアクセスをしてきたら、それをタイミングにして動かしたいCGIをキックする」やり方です。 別途、ロックファイルなどを使って「二重起動」を避ける必要がありますが。 2.おとなしくcronその他を使う 通常、定期的にプログラムを動かすのには、UNIX系ですとcronというものを使います。 ただ、これはきちんとした設定などが不可欠なので、出来ない環境というのも少なからずあるかと思います。 以上…なんかぜんぜん回答になっていなくて恐縮ですが。