10

httpを介して1つのファイルを読み取るphpスクリプトがあります(ファイルは他のドメインにあります)。Web サイトが更新されるたびにこのファイルに接続するのではなく、1 日に 1 回か 2 回だけこのファイルを読みたいと思います。 cronで行う以外に方法はありますか? スクリプト自体でこの動作をセットアップすることを好むため、cron を使用したくありません..柔軟であるため、毎回 cron をセットアップしなくてもどこでも使用できます。ありがとう

4

9 に答える 9

13

cronにアクセスできなかったとき、私は過去にこの種のことをしました:

$lastRunLog = '/path/to/lastrun.log';
if (file_exists($lastRunLog)) {
    $lastRun = file_get_contents($lastRunLog);
    if (time() - $lastRun >= 86400) {
         //its been more than a day so run our external file
         $cron = file_get_contents('http://example.com/external/file.php');

         //update lastrun.log with current time
         file_put_contents($lastRunLog, time());
    }
}
于 2009-05-14T20:46:54.113 に答える
7

cron を使用できない、または使用したくない場合は、ページがアクセスされたときにのみ更新してもかまいません。HTTP 要求の結果をキャッシュし、キャッシュが 1 日または選択した間隔よりも古い場合にのみ、ページの読み込みで更新することができます。

于 2009-05-14T20:10:14.373 に答える
3

時間間隔でサイトにアクセスしたい場合は、Webベースのcronを使用することもでき ます。

于 2009-05-14T20:00:57.467 に答える
2

データベース テーブルを使用することもできます。構造、ID、日付、スクリプトの URL など、必要なものはすべて単純で、スクリプトを実行するたびに行を追加できます。

次に、スクリプトを実行する前に、毎日の行数を確認します。

于 2009-05-15T10:20:09.523 に答える
1

cron を使用したくないことを明示的に述べているため、これを行う唯一の他の方法 (cron に類似したものなし) は、スクリプトをデーモンとしてセットアップすることです。ただし、デーモンが提供する柔軟性が本当に必要でない限り、cron ははるかに簡単でシンプルです。

デーモンのウォークスルーの 1 つを次に示します。

于 2009-05-14T20:50:47.503 に答える
1

Cronjobを使用できます。その後、コマンド ラインで php スクリプトを実行できます。

php /someplace/somefile.php

毎日更新すると、Cronjobは次のようになります。

0  0  *  0  0  php /someplace/somefile.php
于 2009-05-14T19:59:51.230 に答える
-2

cronの何が問題になっていますか?

cronにはいくつかの選択肢があります。phpはコマンドラインのPHPインタープリターで呼び出すことができます。または、wgetやfetchなどを使用して、サーバーでPHPを呼び出すこともできます。

一般に、Webサーバーのコンテキスト内から実行されるPHPには、実行できる時間に制限があるため、一般に、「後で」何かを実行するように「バックグラウンド」PHPスレッドを設定することはできません。

于 2009-05-14T20:01:13.317 に答える
-2

*nix 環境を使用している場合は、cron ジョブを使用できます

于 2009-05-14T19:59:12.417 に答える