ホームページ > バックエンド開発 > PHPチュートリアル > php-resque: Redis ベースのバックグラウンド タスク システム

php-resque: Redis ベースのバックグラウンド タスク システム

步履不停
リリース: 2023-04-06 22:12:02
オリジナル
3165 人が閲覧しました

php-resque: Redis ベースのバックグラウンド タスク システム

php-resque を使用する理由

php-resque は、シンプルな機能設計と柔軟な構成を備えた、Redis ベースの軽量バックグラウンド タスク システムです。大規模で総合的な MQ システムと比較して、これは小さくて美しく見えます。

#php-resque 役割分割

    ジョブはタスクを定義し、特定のビジネス ロジックを担当します。
  • キュー キュー。ジョブの保存/取得を担当します。
  • ワーカーは実行のためにキューからジョブを取得します。通常、
  • PHP CLI モードのバックグラウンド デーモン モードで実行されます。

#次の場合は

##install

を使用します。ダウンロードは遅いですが、composer の国内イメージを設定できます

    composer config -g repo.packagist composer https://packagist.phpcomposer.com
    ログイン後にコピー
  • php-resque をインストールします
    • 旧バージョン

    Composer : このパッケージは放棄され、維持されなくなりました。作者は、代わりに resque/php-resque パッケージを使用することを提案しています。

    composer require  "chrisboulton/php-resque 1.2"
    ログイン後にコピー

    新しい拡張機能パッケージに更新されました:

    resque/php-resque

    composer require resque/php-resque
    ログイン後にコピー

    ジョブの書き込み

    DemoJob.php

    <?php
    class DemoJob
    {
        public function perform()
        {
            // Work work work
            //echo $this->args['name'];
        }
    }
    ログイン後にコピー

    エンキュー操作

    <?php
    
    Resque::setBackend(&#39;localhost:6379&#39;);
    $args = array(
          &#39;name&#39; => 'hanmeimei',
        );
    Resque::enqueue('default', DemoJob::class, $args);
    ログイン後にコピー

    ワーカーコード

    resque-worker.php

    <?php
    $redis_dsn = '127.0.0.1:6379';
    putenv("REDIS_BACKEND=$redis_dsn");
    // 引入队列的入口程序
    $resque = realpath(dirname(__FILE__) . '/vendor/chrisboulton/php-resque/resque.php');
    require_once $resque;
    ログイン後にコピー

    ワーカーを開始するための環境変数

    php-resque

    は次のとおりです:

      QUEUE
    • – これは必要であり、実行するタスクはワーカーによって決定されます。QUEUE=notify,mail,log など、最も重要なタスクが最初に表示されます。 QUEUE=* に設定してすべてのタスクを実行することもできます。

    • APP_INCLUDE
    • – オプション。ファイルをロードするために使用されます。これを APP_INCLUDE=require.php に設定し、require.php にすべてのジョブ クラスを導入できます。

    • #COUNT
    • – ワーカーの数を設定します。デフォルトは 1 COUNT=5 です。

    • REDIS_BACKEND
    • – Redis の IP とポートを設定します。設定されていない場合、デフォルトでは localhost:6379 に接続します。

    • LOGGING
    • 、VERBOSE – ログを設定します、VERBOSE=1。

    • VVERBOSE
    • - より詳細なログ。VVERBOSE=1 のデバッグ時に開いて表示できます。

    • INTERVAL
    • – ワーカーがキューをチェックする間隔。デフォルトは 5 秒 (INTERVAL=5) です。

    • PIDFILE
    • - 請求担当者の場合は、PIDFILE=/var/run/resque.pid のように、PIDFILE を指定して PID を書き込むことができます。

    • BACKGROUND
    • resque をバックグラウンドにスローして実行できます。または、単に

      php resque.php & を使用します。

      Example
    QUEUE=counter php resque-worker.php
    ログイン後にコピー

    これで、php-resque のインストールと使用が完了しました。

    次の章はツール プラグインであり、参照のみを目的としています。


    #Interfaceresque-web

    PHP-Resque の動作状況の監視 インストール

    gem install resque-web -v 0.0.8
    ログイン後にコピー

    実行

    resque-web -p 40000
    ログイン後にコピー

    監視

    スーパーバイザー

    サービスの開始

    /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
    ログイン後にコピー
    プロジェクト構成のモニタリング /etc/supervisor/conf.d/lumen_resque.conf

    [program:worker_lumen_resque]
    directory=/home/wwwroot/mysite
    command=php resque-worker.php
    environment=QUEUE='default'
    ログイン後にコピー

    利点:


    プロジェクトの設定後に自動的に再起動するようにプログラムを構成できます。異常終了

    ユーザーを実行するプログラムを指定します

    ##プロセス数を設定できます
      ##自動再起動
    • ##supervisord の起動後、スクリプトを自動的に開始します
    • グループ管理
    • PHP 関連の技術記事の詳細については、
    • PHP チュートリアル
    • 列にアクセスして学習してください。

    以上がphp-resque: Redis ベースのバックグラウンド タスク システムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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