ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHPチュートリアルでスケジュールされたタスクを実装する方法の詳細な説明

PHP_PHPチュートリアルでスケジュールされたタスクを実装する方法の詳細な説明

WBOY
リリース: 2016-07-20 11:12:05
オリジナル
988 人が閲覧しました

この記事では、PHP でスケジュールされたタスクを実装する方法について、PHP を直接使用して操作する方法や、オペレーティング システムのスケジュールされたタスクを使用して操作する方法など、一般的に使用される詳細な説明をまとめています。詳細を知る必要がある学生は参照してください。

各 PHP スクリプトには実行時間が制限されているため、set_time_limit によってスクリプトの実行時間を無制限に設定してから、flush() と ob_flush() を使用してサーバー バッファをクリアし、任意の時点でスクリプトの戻り値を出力する必要があります。時間。 実行すると、5 秒ごとに Hello World

の行が取得されます。 コードは次のとおりです コードをコピー

header("Content-Type: text/plain");
set_time_limit( 0) ;

$infoString = "Hello World" . "n";
while( isset($infoString) )
{
echo $infoString;
flush();
ob_flush();
sleep(5);
}

コードは次のとおりです コードをコピーします

ignore_user_abort();
set_time_limit(0) ); // 実行時間は無制限です. PHP のデフォルトの実行時間は 30 秒です。 set_time_limit(0) を使用すると、プログラムは無制限に実行できます。
$ key_file="key.txt"; // 設定ファイル
if (isset($_GET['s']))
{
if ($_GET['s']=="0"){ // 作業を停止しますが、終了しないでください
$s ="false";
echo "機能がオフです" }
elseif ($_GET['s']=="1"){ $s="false"; echo "機能がオンです"
}
elseif ($_GET['s']=="2"){ // 終了
$s="die";
echo "関数が終了しました" }
else
die ("エラー 0: 動作停止 1: 動作 2 :exit");
$string = "";
write_inc($key_file,$string, true);
exit();
}
if(file_exists($key_file)){
do{
$mkey = include $key_file;
if ($mkey=="true"){ // うまくいく場合
// ///////// ////////// 作業エリア ////////////////////////////// ////// s $ ショータイム = 日付 ("Y-M-D H: I: S")
$ fp = FOPEN ('Func.txt', 'A'); //////////////// ///////////
}
elseif ($mkey=="die"){ // 終了する場合
die("私は死にます!")
}
sleep($interval); / $interval 分間待ちます
}while(true);
}
else
die($key_file." が存在しません !")
function write_inc ($path,$strings,$type=false); $path=dirname(__FILE__)."/".$path;
if ($type==false)
file_put_contents($path,$strings,FILE_APPEND)
else
file_put_contents($path,$strings);
?>



個人的には、PHP でタスクを定期的に実行するのはまだ少し複雑で使いにくいと感じています。次に、オペレーティング システムでスケジュールされたタスクを実装する方法を紹介します。

Windows で PHP スケジュールされたタスクを実行するいくつかの方法をインターネットで検索しました。そのうちの 1 つは非常に包括的なものでしたが、残念ながら私の場合はうまくいきませんでした。結局、ここでうまく運営するには、さまざまな宗派の方法を組み合わせる必要がありました。

1. test.php という名前の PHP プログラムを作成します。内容は次のとおりです:

コードは次のとおりです コードをコピーします

$fp = fopen(" test.txt" , "a+");

fwrite($fp, date("Y-m-d H:i:s") . " 成功しました! n");

fclose($fp);

?>

プログラムを大胆に記述します。任意の includerequire を使用します。問題ありません。 2. test.bat という名前の新しい Bat ファイルを作成します。内容は次のとおりです。


コードは次のとおりです D: phpphp.exe -q D:websitetest.php//対応するディレクトリを自分で変更します
コードをコピーします

3. WINDOWS のスケジュールされたタスクを作成します。タスク スケジュール –>タスク スケジュールの追加

フォルダーを参照し、上記のバット ファイルを選択します 時間とパスワードを設定します (WINDOWS にログインします)

保存します。
4. 以上です! スケジュールされたタスクを右クリックし、[実行] をクリックして試してください

Linux システム


では、Linux Crontab ツールを使用して、PHP 実行タスクを安定して確実にトリガーできます。

Crontabの2つの方法を以下に紹介します。


1. PHP を使用して Crontab でスクリプトを実行する
Crontab で通常のシェル スクリプトを呼び出すのと同じように (Crontab の特定の使用法)、PHP プログラムを使用して PHP スクリプトを呼び出します。

次のように myscript.php を 1 時間ごとに実行します:


1.

コードは次のとおりですコードをコピーします# crontab -e2.00 * * * * /usr/local/bin/php /home/john /myscript.php/usr/local/bin/php2. URL を使用して Crontab でスクリプトを実行する


は、PHP プログラムのパスです。
PHP スクリプトを URL によってトリガーできる場合は、lynx、curl、または wget を使用して Crontab を構成できます。

以下の例は、Lynx テキスト ブラウザを使用して URL にアクセスし、PHP スクリプトを 1 時間ごとに実行します。 Lynx テキスト ブラウザは、デフォルトで会話モードを使用して URL を開きます。ただし、以下に示すように、lynx コマンド ラインで -dump オプションを使用して、URL 出力を標準出力に変換します。



コードは次のとおりです

コードをコピーします
1.00 * * * * lynx -dump /myscript.php

次の例は、CURL を使用して URL にアクセスし、PHP スクリプトを実行します。 5分ごと。 Curl は、デフォルトで出力を標準出力に表示します。 「curl -o」オプションを使用して、スクリプトの出力を一時ファイルにダンプすることもできます。

コードは次のとおりです

コードをコピーします
1.*/5 * * * * /usr/bin/curl -o temp.txt /myscript.php

以下の例は、WGET を使用して URL にアクセスし、10 分ごとに PHP スクリプトを実行します。 -q オプションは、Quiet モードを示します。 「-O temp.txt」は、出力が一時ファイルに送信されることを意味します。

コードは次のとおりです コードをコピー

1.*/10 * * * * /usr/bin/wget -q -O temp.txt /myscript.php


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444599.html技術記事この記事では、PHP でスケジュールされたタスクを実装する方法について、一般的に使用される詳細な説明をまとめています。これには、PHP を直接使用して操作する方法や、オペレーティング システムのスケジュールされたタスクを使用して操作する方法も含まれます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート