ホームページ > バックエンド開発 > PHPチュートリアル > crontab php を自動的に解析する方法 run_PHP チュートリアル

crontab php を自動的に解析する方法 run_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:03:44
オリジナル
937 人が閲覧しました

crontabはLinuxに付属のコマンドです
phpを自動的に実行する方法
phpを自動的に実行する方法はたくさんありますが、次のDZと、システムを介して完了するいくつかのメソッド、および直接トリガーするメソッドを示します。常駐システムの運用。
Discuz には、PHP を自動的に実行できるスケジュールされたタスクがバックグラウンドであります。
DZ スケジュールされたタスクのメカニズムは次のとおりです:
1. まず、スケジュールされたタスクをトリガーする時間になると、訪問 (メンバー、訪問者、検索エンジン スパイダー) が発生し、その後、スケジュールされたタスクがトリガーされます。 (PHP はトリガー言語であり、誰もアクセスしないため、何もできません。)
2. スケジュールされたタスクの実行が成功すると、成功した実行に関する情報が返されます。次回実行する必要があるときに、時刻がデータベースに更新されます。

現在、PHP を自動的に実行する方法はいくつかあります:
1: Windows でスケジュールされたタスクを使用する
Linux で crantab を使用する

欠点: サーバー権限が必要です
2: 特定の Web を更新するを使用するたとえば、js または php プログラムを使用して、時々ページを開きます。

欠点: ページを開くにはツールを使用する必要があります。
3: ユーザーの訪問時にトリガーされます

欠点: ユーザーが訪問したページにトリガー プログラムが含まれている必要があります。
crontabを使用して実行をスケジュールします
はUNIXコマンドです
crontab - ユーザーごとにデーモンを操作し、実行のスケジュールを設定します。

いくつかの特定のパラメータは次のように説明されています:
crontab ファイル [-u user] - 現在の crontab を指定されたファイルで置き換えます。
crontab-[-u user] - 現在の crontab を標準入力に置き換えます。
crontab-1[user] - ユーザーの現在の crontab を一覧表示します。
crontab-d [ user] - ユーザーの現在の crontab を削除します。
crontab-c dir - crontab ディレクトリを指定します。
crontab ファイル形式: M H D m d cmd。
M: 分 (0-59)。
H: 時間 (0 ~ 23)。
D: 日 (1-31)。
m: 月 (1 ~ 12)。
d: 曜日 (0 ~ 6、0 は日曜日)。
cmd によって実行されるプログラムは、実行のために sh に送信されます。このシェルには、USER、HOME、SHELL の 3 つの環境変数しかありません。

以下はファイルの例です:

コードをコピーします コードは次のとおりです:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#毎朝6時
106* * * date
#2時間ごと
0 */2* * * 日付
#午後11時から午前8時までの2時間ごと、午前中
0 23-7/2、8* * *日付
#毎月4日と月曜から水曜の午前11時ごと
0 11 4* 月-水の日付
#1月の日の午前4時
0 4 1 jan* 日付




コードをコピーします コードは次のようになります:
lark:~>crontab-1 は、ユーザーの現在の crontab をリストします。
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6* * * date
0*/2* * * date
0 23-7/ 2,8 * * * 日付

Linux では、スケジュールされた操作を実装する方法がたくさんあります。crontab を使用する場合は、環境変数に特に注意する必要があります。ここでは、Oracle を実行する sqlplus を例にして crontab の使用方法を説明します。 。

1: crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除

2: crontab で処理されるファイル形式は、分、時、日、月、週です。 実行されるファイル名 * はすべての条件を表します 5 * * * * rem /home/oracle/execsql は /home/ の実行を表します。 oracle 毎時 5 分に /execsql ファイル

3: 特定の環境変数の下で実行する必要がある SQL などのコマンドについては、実行ファイルにリストする必要があります。 sqlplus が oracle で実行される場合は、次の形式で記述する必要があります: $ cat execsql ORACLE_HOME=/ora815;export ORACLE_HOME ORACLE_OWNER=oracle;export ORACLE_OWNER ORACLE_SID=ora815;export ORACLE_SID ORACLE_BASE=/ora815/app/oralce;export LE_BASE LD_LIBRARY_PA TH=$ ORACLE_HOME/lib;export LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280;export NLS_LANG /ora815/bin/sqlplus test1/test1 @test1.ext @が可愛いtest1.ext ファイル、データベースのユーザー名/パスワードは test1/test1) です

execsql が実行可能プログラムである必要があります $ ls -al execsql -rwxr-xr-x 1 oracle dba 374 Oct 07 15:17 execsql

crontab を使用して php プログラムを 12:00 に実行します
に従って変更するだけです次の形式で、crontab に追加するだけです
00 0 * * * cd /プログラムのパス;php プログラム名.php
これは、cli または cgi モードで php でコンパイルする必要があります。

さらに:
If管理権限ではなく、仮想空間のみです
PHPには非常に便利な機能があります。これは最近の開発で徐々に使用されています。 intignore_user_abort ([bool 設定]) この関数の機能は、リモート クライアントが接続を閉じた後、次のスクリプトの実行を継続するかどうかをサーバーに指示することです。設定パラメータはオプションのパラメータです。 True に設定すると、ユーザーがスクリプトの実行を停止しても、スクリプトの実行には影響しません (つまり、スクリプトは実行を継続します)。False に設定すると、ユーザーが実行を停止しても影響を受けないことを意味します。スクリプトを実行すると、スクリプトの実行が停止します。 次の例では、ユーザーがブラウザを閉じた後、スクリプトはサーバー上で実行を続けます:

コードをコピーします コードは次のとおりです:
ignore_user_abort() // バックグラウンドで実行します
; set_time_limit(0); // スクリプトの実行時間のタイムアウト制限をキャンセルします
do{
sleep(60) // 1 分間スリープします
}while(true);

このプログラムがサーバー上で閉じられていない限り、コードは永久に実行され続けます。

http://www.bkjia.com/PHPjc/327820.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327820.html技術記事 Crontab は、PHP を自動的に実行するための Linux に付属するコマンドです。PHP を自動的に実行する方法は数多くあります。以下に、システムと常駐システムの実行を直接トリガーする方法をいくつか示します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート