ホームページ > バックエンド開発 > PHPの問題 > PHPでスケジュールされたタスクを実装するにはどのような方法がありますか?

PHPでスケジュールされたタスクを実装するにはどのような方法がありますか?

王林
リリース: 2023-03-07 15:10:01
オリジナル
2446 人が閲覧しました

スケジュールされたタスクを実装するための

php メソッドは次のとおりです: 1. Linux システムで crontab を使用して実装します; 2.ignore_user_abort 関数を使用して実装します; 3. file_get_contents 関数を使用して実装します。

PHPでスケジュールされたタスクを実装するにはどのような方法がありますか?

1. サーバーのスケジュールされたタスク

サーバーのスケジュールされたタスクは、実際には UNIX システムの crontab の下にあります。実装、特定の設定: Linux のスケジュールされたタスク crontab; ただし、PHP スクリプトを定期的に直接読み取ることに加えて、スケジュールされたインターフェイス呼び出しを使用することもできます。

(学習ビデオの推奨: java ビデオ チュートリアル

)

スクリプト実行時:

*/1 * * * * php /data/www/cron.php cron.php を毎分実行します

URL モード呼び出し:

lynx モード:*/1 * * * * lynx -dump http://www . xxxxxxx.com/cron.php (URL 出力を標準出力に変換する -dump オプション)

curl メソッド: */1 * * * * /usr/bin/curl -o temp.txt http: //www.xxxxxxx.com/cron.php (Curl は、デフォルトで出力を標準出力に表示します。スクリプトの出力を一時ファイル temp.txt にダンプするには、「curl -o」オプションを使用します)

wget メソッド: */1 * * * * /usr/bin/wget -q -O temp.txt http://www.xxxxxxx.com/cron.php (q オプションは Quiet モードを示します。 "-O temp.txt " は出力が一時ファイルに送信されることを示します。)

上記の方法では、http://www.xxxxxx.com などの URL を使用してアクセスできるアドレスに php スクリプトを配置します。 /cron.php にアクセスし、トリガー タスクを定期的に呼び出します。

2.ignore_user_abort() メソッド

ignore_user_abort() 関数は、クライアントからの切断によってスクリプトの実行を終了するかどうかを設定します。

最初に cron.php ファイルを使用してスクリプトの終了を制御します。cron.php の内容は次のとおりです:

<?php
return 1;
?>
ログイン後にコピー

スクリプト php ファイルは次のとおりです:

<?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
$run = include &#39;config.php&#39;;
if(!$run) die(&#39;process abort&#39;);  //return 0 时, 终止
//TODO 该干啥干啥
sleep($interval);// 等待5分钟
}
while(true);
ログイン後にコピー

By cron.php を変更すると 0 が返され、プログラムが停止します。ただし、この方法はメモリ管理が苦手です。

3. file_get_contents() メソッド

<?php
$time=15;
$url="http://".$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;];
//TODO
sleep($time);
file_get_contents($url);
?>
ログイン後にコピー

php スクリプト スリープは、一定の時間が経過しても自身にアクセスすることで実行を継続します。これにより、各 PHP スクリプトの実行時間が長くなりすぎないようにすることができます。 time_out 制限の影響を受けません。 PHP ファイルの各ループは独立して実行されるため、このメソッドは time_out 制限を回避します。ただし、プロセスを終了できるように、上記のように制御コード cron.php を追加することをお勧めします。

関連する推奨事項: php トレーニング

###

以上がPHPでスケジュールされたタスクを実装するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート