ホームページ  >  記事  >  バックエンド開発  >  Crontab の PHP_PHP チュートリアルに基づくスケジュールされたタスク管理

Crontab の PHP_PHP チュートリアルに基づくスケジュールされたタスク管理

WBOY
WBOYオリジナル
2016-07-13 10:13:331053ブラウズ

PHP ベースの crontab スケジュールされたタスク管理

Linux の crontab は、サーバーの運用と保守、およびビジネス開発にとって常に強力なツールです。しかし、スケジュールされたタスクの数が増えると、管理と移行が煩雑になり、問題が発生しやすくなります。以下は PHP で書かれた crontab マネージャーを提供しますが、このマネージャーを実行するには 1 分に 1 回実行される呼び出しを crontab の下に追加する必要があります。このマネージャーを通じて、次の目的を達成できます:

  • 分散したスケジュールされたタスクを一元管理
  • 複数の crontab レコードを結合します
  • crontab は永続ストレージ (設定ファイルまたはデータベース) を記録します

    データベース要求が長期間にわたって安定した応答を維持できることが保証できない限り、crontab 構成管理にデータベースを使用することはお勧めできません。 nosql タイプのキャッシュ ストレージを使用し、永続的なバックアップを作成することをお勧めします。

    早速、テストコードの最後の部分を示します:

    れーれー

    このコードでは、PHP のパッケージ マネージャー コンポーザーを使用しています。理解できない場合は、使用する必要があるクラスを PHP スクリプトに手動で含めることができます。

    実行後、デフォルトのログ ファイル (/var/log/php_crontab.log) で crontab の実行記録が表示されます。もちろん、2 番目のパラメーターを Crontab に渡すことでログ ファイルのログを指定できます (書き込み可能であることを確認してください)。 。ログファイルの内容は次のとおりです:

    れーれー

    ログには、プログラムの起動時間、実行中のコマンド、pid、その他の情報が記録されます。手動で行ったので正確な00秒ではありません。正式に使用する場合は、以下のコマンドをcrontabに追加してマネージャーの自動動作を実現します。

    れーれー
    マネージャー関連の依存関係:

    • プロセス制御パッケージ: "jenner/multi_process": "1.0.0",
    • pcntl拡張子
    • crontab サービス

      jenner/multi_process パッケージは、主に子プロセスを使用してスケジュールされたタスクを実行するために使用され、親プロセスがブロックしてスケジュールされたタスクの遅延を引き起こさないようにします。

      プロジェクトアドレス:

      このプロジェクトは github でホストされており、packagist パッケージのサポートも提供しています。composer.json に「jenner/crontab」を追加できます。 このパッケージをロードするには「1.0.0」。

      具体的なソースコードはgithubで見ることができます。

      元記事、転載の際は明記してください: Always Not Enough より転載

      この記事のリンクアドレス:PHPベースのCrontabスケジュールタスク管理

      www.bkjia.com本当http://www.bkjia.com/PHPjc/914778.html技術記事 PHP に基づく Crontab スケジュールされたタスク管理 BY JENNER · 2014 年 11 月 10 日 · 読み取り数: 6 Linux の crontab は、常にサーバーの運用と保守、およびビジネス開発のための強力なツールです。しかし、スケジュールされたタスクの数が増えると...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。