Linux_PHP チュートリアルで PHP スケジュール済み cron タスクを実装する方法の詳細な説明

WBOY
リリース: 2016-07-13 17:18:16
オリジナル
779 人が閲覧しました

PHP 自体にスケジュールされたタスクを実行するための解決策はありませんが、スリープ関数の助けを借りて実行されます。この方法では、実装プロセスなど、事前にいくつかの構成が必要です:

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

ignore_user_abort();//ブラウザを閉じると、PHPスクリプトは実行を続行できます。
set_time_limit(0);//プログラムは無制限に実行できますthrough set_time_limit(0) Execute i $ Interval = 60*30; // 30 分ごとに実行します
Do {
// これは実行したいコードです
Sleep ($ Interval) // 5 分間待ちます}}ながら (本当)


ただし、この方法にはパフォーマンスの問題がいくつか懸念されますが、これも一時的な方法です。

私が推奨する方法は、スクリプトを使用して実装する方法、OS 自体のスケジュールされたタスクのメカニズムを使用する方法、および Windows 上の Bat スクリプトを使用する方法です。しかし、Windowsでは試していません。次に、Linux での実装について説明します。

Web サーバーが Linux ベースの場合は、Linux で cron ジョブを使用して完了できます。 RedHat5 を例に挙げると、事前に定期的に実行されるロジック コードのみが必要です。たとえば、demo.php

コードをコピーします コードは次のとおりです:
echo "Hello";
?>


次に、シェルスクリプトでphpをカプセル化し、シェルスクリプト内でdemo.phpを呼び出します。demo.shのコードは次のとおりです。

コードをコピーします

コードは次のとおりです:#! /bin/bash
#php を /usr/local/php/
/usr/local/php/bin/php /home/xx-user/demo.php にインストールする場合



シェル スクリプトの作成が完了したら、この行に対して十分な権限があることを確認します (例:/bin/chmod u+x Demon.sh)。
次に、Linux で cronjob を設定します。cronjob はデフォルトで Linux にインストールされます。タスクを時間、日、週、または月ごとに実行する必要がある場合は、demo.sh スクリプトを

に直接コピーできます。

/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly は問題ないので、タスクを完了できます。スケジュールされたタスクを特定の時点で削除したい場合は、上記のフォルダーから別の場所に移動するか、直接削除します。

スクリプトに特別な実行時間が設定されている場合 (毎週火曜日や毎月 15 日など)。次に、独自の cron ジョブを構成する必要があります。

cron の特別な設定については、以下を参照してください: http://www.pantz.org/software/cron/croninfo.html

ここでは、午前 12 時から午後 14 時までの間、2 分ごとにこのスクリプトを実行します。構成は次のとおりです (たとえば、demo.sh は /tmp ディレクトリにあります)。

まず Linux コマンドラインで crontab -e を実行し、次にルールを入力します。

コードをコピーします

コードは次のとおりです:*/2 12-14 * * * /tmp/demo.sh

入力が完了したら、キーボードの「Esc」キーを押して「wq」と入力すると、編集ページが終了します。次に、 crontab -l を使用して、編集したばかりの cron ジョブを表示できます。
この時点で特別な cron が完成します。たとえば、Linux でデモ アカウントを使用して上記の手順を完了した場合は、/var/spool/cron/demo ファイルを直接編集する別の簡単な方法があります。 cron ジョブを変更します。例: vi /var/spool/cron/demo

OS を使用してスケジュールされたタスクを管理するのは非常に高速であり、スクリプト自体に問題がない限り、パフォーマンスの問題を心配する必要はありません。この方法は保守が簡単で、スケジュールされた実行計画を変更したり、他のスケジュールされたタスクを簡単に削除したり追加したりすることもできます。

http://www.bkjia.com/PHPjc/621667.html

www.bkjia.com

本当http://www.bkjia.com/PHPjc/621667.html技術記事 PHP 自体にはスケジュールされたタスクを実行するための解決策はありませんが、スリープ関数の助けを借りて実行されます。この方法では、実装プロセスなど、事前にいくつかの設定が必要です: コードをコピー Code...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!