sql >> データベース >  >> RDS >> Mysql

特定の時間にphpスクリプトの実行を自動的にスケジュールします

    3つのオプションがあります。私の推奨事項:可能な場合はcronを使用し、必要な場合はユーザー主導で、最後の手段としてデーモンを使用してください。

    (1)cron(コメントに記載されているとおり)

    cronは、システムでコマンドラインジョブを実行するLinuxシステム用のスケジューラです。 ssh経由でサーバーにログインし、crontab -eと入力します 、次のような行を追加します:

    4 5 * * * php /path/to/my/script.php
    

    これにより、スクリプトは毎日午前5時4分に実行されます。

    <?php
    // /path/to/my/script.php
    
    // Do something
    

    一部のホスティングサービスでは、GUIを使用してcronジョブを入力できます。特定の時間にURLを呼び出す外部のcronサービスもあります。

    (2)デーモン

    これは最も高度なオプションであり、信頼性も最も低くなります。無限ループを含むコマンドラインスクリプトを実行します。次に、スクリプトは定期的に状態をチェックし、それに応答します。数か月の実行後にクラッシュする可能性があるため、クラッシュした場合に備えて、再起動するための2番目のスクリプトが必要です。これは大変な作業ですが、最も柔軟なアプローチです。

    <?php
    
    
    
    while (1) {   
    
      // fetch $last_exec_timestamp from database
    
      if ($last_exec_timestamp < time() + 86400) {
        // set last_exec_timestamp to now in database
    
        // do something
      }
      sleep(5);
    

    }

    3。ユーザー主導

    サイトにかなりの量のトラフィックがある場合、出力がなくなったときに、これをページフッターに含めることができます。このコードが高速であることを確認してください。そうしないと、不運なユーザーがそれを待っています。

    <?php
    
    // fetch $last_exec_timestamp from database
    
    if ($last_exec_timestamp < time() + 86400) {
      // set last_exec_timestamp to now in database
      // do something
    }
    

    別のスタックオーバーフローで個人的にテストしていない「ユーザー主導」のより凝ったアプローチもあります質問



    1. Oracle PL/SQL-即時出力/コンソール印刷のヒント

    2. AmazonRDSを使用したPostgreSQLの実行

    3. 致命的なエラー:C:\ xampp \ htdocsにある未定義の関数sqlsrv_connect()を呼び出します

    4. MySQLエラークエリが空になったのはなぜですか?