2012-04-13 9 views
2

プロセス、シグナル送信などで作業しやすいライブラリがありますか?前もって感謝します!プロセスの作成を容易にするPHPライブラリ(fork)

EDIT: PHPデーモンの外部ソースからデータを読み込んでいます。すべてのデータソースから来たデータを処理するためのすべてのデータソース、

  • 1プロセス当たりの負荷のため

    • つのプロセスを:私たちは持っているPHPのプロセスを分割したいです。
  • +1

    あなたの目標は何ですか?もう少し説明してください。 – Stony

    +0

    使い方についてのコメントを追加しました。 – Tuner

    +0

    解決策は、実行する必要のあるジョブのキューを読み取る1つの「所有者」を持つ多くのデーモンプロセスを作成することです。ユーザーが作成するプロセスの数に応じて、多くのプロセスが並行して処理されます。たぶん、http://www.zeromq.org/の使用は、実装を行うための正しい解決策になるでしょう。 – Tuner

    答えて

    3

    Sporkをチェックアウトすることができます。これは、フォークとバックグラウンド処理を容易にするために設計されています。

    これはかなり新しく(ちょうど3日前に発表されました)、試してみる価値があります。

    +0

    これはpcntlのラッパーです。 – rdo

    2

    process controlライブラリを使用できますが、これはlinuxでのみ動作します。

    forkには、pcntl_fork機能が含まれています。 Example

    $pid = pcntl_fork(); 
    if ($pid == -1) { 
        die('could not fork'); 
    } else if ($pid) { 
        // we are the parent 
        pcntl_wait($status); //Protect against Zombie children 
    } else { 
        // we are the child 
    } 
    

    UPD:私はあなたの目標を理解して修正する場合は、プロセスのフォークせずにアプリケーションを設計します。最初のデーモンがデータソースを処理し、それをキューに追加する2つのデーモンを使用できます。 2番目のデーモンはキューを追跡し、それを処理します。

    p.s.私が知っているように、PHPはWindowsプラットフォーム上でプロセスをフォークできません。また、追加のためにはPOSIX functionをPHPで使用することができます。

    +0

    私が説明した目標を達成するためのWindowsの可能性はどうですか? "マルチスレッド" "マルチプロセッシング"を実現するには? – Tuner

    +1

    PHPでスレッディングなどのことはありません –

    +0

    はい、私はそれを認識しています。私は、並行してジョブを作るための既存の実績のあるソリューションを探しています。 – Tuner

    関連する問題