QPM-PHPマルチプロセス開発-Supervisor構成参考


QPMはPHPプロセス管理フレームワークであり、Daemonの開発を簡略化するために使用でき、プロジェクトアドレスは以下の通りである.https://github.com/Comos/qpm
QPMは、リリース0.2までに3つのSupervisonモード、OneForOne MultiGroup OneForOne、TaskFactoryModeをサポートしています.異なるモードでは、異なるプロセスツリーの組み合わせ、サブプロセスの再起動、同時制御のポリシーが異なり、異なるアプリケーションシーンに適応できます.異なるモードは異なるファクトリメソッドに対応しています.例えば、OneForOneの作成方法はqpmsupervisorSupervisor::oneForOne($config);
OneForOne
方法
qpm\supervisor\Supervisor::oneForOne($config)
シーンの操作
すべてのサブプロセスは、同じコールバック関数またはRunnableクラスを使用します.
フィールドの設定
  • *runnableCallbackまたはrunnableClass.タイプcallableまたはqpmprocessRunnable runnableCallbackは、サブプロセスで実際のタスクを実行するコールバックです.runnableClassは、サブプロセス種で実際のタスクを実行するクラスとrunnableCallbackの2つを選択します.
  • quantityタイプintegerデフォルト1コンカレント数.
  • maxRestartTimesタイプintegerの最大再起動回数は、withInSecondsと組み合わせて使用されます.
  • withInSecondsタイプintegerとmaxRestartTimesは、masterプロセスが所定の時間内に最大の再起動回数を示す.

  • 例1
    <?php
    //  3      ,       justDoIt   
    $config = ['runnableCallback' => 'justDoIt', 'quantity' => 3];
    $sup = qpm\supervisor\Supervisor::oneForOne($config);
    $sup->start();
    

    例2
    <?php
    //  5      ,        Foo::run()
    //10        100 ,          
    $config = ['runnableClass' => 'Foo', 'quantity' => 5, 'maxRestartTimes'=>100, 'withInSeconds'=>10];
    $sup = qpm\supervisor\Supervisor::oneForOne($config);
    $sup->start();
    

    MultiGroupOneForOne
    方法
    qpm\supervisor\Supervisor::oneForOne($config)
    シーンの操作
    MultiGroup OneForOneはOneForOneのアップグレード版で、OneForOneのプロセスを複数グループ管理できます.MultiGroup OneForOneの構成は、いくつかのOneForOne構成が組み込まれた配列です.
    TaskFactoryMode
    タスクファクトリモード、タスクは指定したファクトリメソッドによって生成されます.
    方法
    qpm\supervisor\Supervisor::taskFactoryMode($config)
    シーンの操作
    サブプロセスごとに実行されるタスクはそれぞれ異なり、異なるパラメータ、クラス、またはRun関数が必要であるため、各タスクはタスクファクトリによって生成されます.
    フィールドの設定
    *factoryMethod callableタスクオブジェクトまたはcallableを生成するファクトリメソッド.factoryMethod戻り値はqpmprocessRunnableまたはcallable
  • quantityタイプintegerデフォルト1コンカレント数.

  • QPMは、リリース0.2までに3つのSupervisonモード、OneForOne MultiGroup OneForOne、TaskFactoryModeをサポートしています.異なるモードでは、異なるプロセスツリーの組み合わせ、サブプロセスの再起動、同時制御のポリシーが異なり、異なるアプリケーションシーンに適応できます.異なるモードは異なるファクトリメソッドに対応しています.例えば、OneForOneの作成方法はqpmsupervisorSupervisor::oneForOne($config);
    OneForOne
    方法
    qpm\supervisor\Supervisor::oneForOne($config)
    シーンの操作
    すべてのサブプロセスは、同じコールバック関数またはRunnableクラスを使用します.
    フィールドの設定
  • *runnableCallbackまたはrunnableClass.タイプcallableまたはqpmprocessRunnable runnableCallbackは、サブプロセスで実際のタスクを実行するコールバックです.runnableClassは、サブプロセス種で実際のタスクを実行するクラスとrunnableCallbackの2つを選択します.
  • quantityタイプintegerデフォルト1コンカレント数.
  • maxRestartTimesタイプintegerの最大再起動回数は、withInSecondsと組み合わせて使用されます.
  • withInSecondsタイプintegerとmaxRestartTimesは、masterプロセスが所定の時間内に最大の再起動回数を示す.

  • 例1
    <?php
    //  3      ,       justDoIt   
    $config = ['runnableCallback' => 'justDoIt', 'quantity' => 3];
    $sup = qpm\supervisor\Supervisor::oneForOne($config);
    $sup->start();
    

    例2
    <?php
    //  5      ,        Foo::run()
    //10        100 ,          
    $config = ['runnableClass' => 'Foo', 'quantity' => 5, 'maxRestartTimes'=>100, 'withInSeconds'=>10];
    $sup = qpm\supervisor\Supervisor::oneForOne($config);
    $sup->start();
    

    MultiGroupOneForOne
    方法
    qpm\supervisor\Supervisor::oneForOne($config)
    シーンの操作
    MultiGroup OneForOneはOneForOneのアップグレード版で、OneForOneのプロセスを複数グループ管理できます.MultiGroup OneForOneの構成は、いくつかのOneForOne構成が組み込まれた配列です.
    TaskFactoryMode
    タスクファクトリモード、タスクは指定したファクトリメソッドによって生成されます.
    方法
    qpm\supervisor\Supervisor::taskFactoryMode($config)
    シーンの操作
    サブプロセスごとに実行されるタスクはそれぞれ異なり、異なるパラメータ、クラス、またはRun関数が必要であるため、各タスクはタスクファクトリによって生成されます.
    フィールドの設定
    *factoryMethod callableタスクオブジェクトまたはcallableを生成するファクトリメソッド.factoryMethod戻り値はqpmprocessRunnableまたはcallable
  • quantityタイプintegerデフォルト1コンカレント数.