問題タブ [pcntl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP MAMP でプロセス制御拡張機能 (PCNTL) を有効にする方法は?
-pcntl
MAMP があり、現在の MAMP インストールで
有効にする必要があります。どうすればそうできますか?
ご協力いただきありがとうございます。
php - Web サーバー環境の PHP で PROCESS CONTROL (PCNTL) を有効にすると、どのような副作用がありますか?
以下はhttp://www.php.net/manual/en/intro.pcntl.php
からの引用です。
Web サーバーで有効にした場合の副作用は何ですか? そこにはどのような脅威とセキュリティ上の懸念がありますか?
助けてくれてどうもありがとう
php - pcntl_fork()ubuntuxamppをアクティブ化します
PHPの関数pcntl_fork()に問題があります。
XAMPPを使用していますが、その関数を使用しようとしていますが、次のエラーが表示され続けます。
未定義の関数pcntl_fork()の呼び出し
GoogleとXAMPPフォーラムで何かを掘り下げましたが、完全に役立つものは見つかりませんでした。と呼ばれるいくつかの構成を有効にする必要があると言っているいくつかのフォーラムを見つけました
--enable-pcntl
phpinfo()を見ましたが、configureコマンドにそのオプションがあります。手伝って頂けますか?
よろしくお願いします。
エルカス
php - pcntl_forkの後にmysql接続を親プロセスに保持するにはどうすればよいですか?
ご存知のとおり、フォークすると、ファイルやネットワーク記述子を含むすべてのコピーが子に渡されます- man fork
。
PHPでは、pcntl_forkを使用すると、mysql_connectで作成されたすべての接続がコピーされますが、これは多少問題になります-phpdocsとSOの質問。この状況での常識は、親接続を閉じ、新しい接続を作成し、子供に古い接続を使用させることです。しかし、もし親が数秒で多くの子供を作る必要があるとしたらどうでしょうか?その場合、フォークの束ごとに1つずつ、大量の新しい接続を作成することになります。
これはコードで何を意味しますか?
まあ、私はそれをしたくありません-それはデータベースへの接続が多すぎることです。理想的には、これと同様の動作を実現できるようにしたいと思います。
可能だと思いますか?
他のいくつかのこと:
- これはphp-cliスクリプトです
最初の例でmysql_pconnectを使用してみましたが、違いがないことがわかる限り、mysqlサーバーは同じ数の新しい接続を受信します。おそらくそれはcliであり、mod_phpのようにpconnectが機能しないためです。マークが気付いたように、php-cliのpconnectは意味がありません。
php - 子プロセスによって pcntl_signal がトリガーされない
私はこれを達成したい:
デーモンが SIGHUP を取得した場合は、プロセスを (子として) 再度実行し、親を強制終了します。
私がそれを実行しているとき、初めて働いています:
問題は、子プロセスを強制終了している場合、関数がトリガーされないことです
コード:
このコードは PHP 5.2.9 では機能しますが、PHP 5.3.5 では機能しません。そのバージョンでも動作させる方法はありますか?
ありがとう!
ロニー
php - PHP PCNTL-信頼できるエラーロギングは可能ですか?
私の現在のアプリケーションは、PHPページへのajax呼び出しを行い、Oracleプラットフォーム上のJSPページへのAPIリクエストを行います。{true}
現在、PHPスクリプトは、有効なデータがJSPから返されたことを単純に信頼し、 json応答をajaxサクセスハンドラーに送り返します。ajaxは現在正常に失敗するように設定されているため、関係なく機能しますが、役に立ちません。
私の仕事は、jspファイルが例外をスローするように設定されたら、それに応じてPHPに例外を処理させ、エラーをログに記録して、json{false}
応答を返すことです。
包括的すぎると、ロギングに時間がかかりすぎるのではないかと心配しています。このプロセス(ロギングやエラーチェックなし)は現在非常に高速であり、速度が重要な要素です。この潜在的なボトルネックを回避するための私の考えは、PHPに「エラーをログに記録しますが、何かがログに記録されたという確認を待たずに、falseを返すだけです」と伝えることです。
PCNTLでフォークが可能であることは知っていますが、フォークする場合は非常にメモリが必要であることがわかるため、プロセス全体をフォークすることを躊躇します。
PCNTLを使用しなくても、私が望んでいることを実行することは可能ですか?また、これをどのように達成できますか?
php - クエリを実行する前に、PDO MySQL接続のエラーを確認するにはどうすればよいですか?
私のスクリプトは、多くの異なる関数でフォークされたプロセスでかなりだらけになっています。が呼び出されるたびpcntl_fork()
に、すべてのMySQL接続が失われます。PDO MySQL接続でクエリを実行すると、エラーが発生します"MySQL server has gone away"
。
問題は、このエラーPDO::errorinfo()
がクエリの実行に失敗した後にのみ表示されることです。クエリを実行する前に、MySQLサーバーが「なくなった」かどうかを検出できるようにしたいと思います。そうすれば、そのような状況で新しい接続を確立するPDOラッパーを作成できます。
何か案は?
php - PHP pcntl 変数のスコープ
親pidにある配列要素を変更できるようにしたい。コード例を次に示します。
したがって、このスクリプトが終了すると、子プロセスに記述した 2 つの要素は foreach ループの最後にはありません。親pidにある配列を子から変更できません。理由はわかりますが、それを可能にする素晴らしい解決策が思いつきません。何か提案できますか?グローバルか何か?
php - posix_killとpcntl_signal
これは少し難解であり、ソースを自分でトロールして答えるまで、この質問に答えられない可能性がありますが、ここに行きます:
私は単純なPHPデーモンライブラリの作成者です:https ://github.com/shaneharter/PHP-Daemon 。PHPはこの種のことには理想的ではありませんが、PHPでcronをデーモン化または記述し、「未開始」でそのタスクをはるかに簡単にするためにライブラリを作成する必要がある場合があります。
ライブラリにJavaScriptWorkersAPIを実装しており、POSIXへの依存関係を追加することを検討しています(現在、PCNTLですべてを実行しています)。
PCNTL_SIGNALとPOSIX_KILLの違いを知っている人はいますか?どちらを使用しても、任意のプロセスに任意のシグナルを送信できます。だから....一方が他方よりも優れていますか?それとも、彼らは両方とも本当に同じことを内部で行っているのでしょうか?
php - PHPpcntlスクリプト-ガイダンスが必要
私はスクレイピングプロジェクトに取り組んでいます。アプリケーションのどこかでこの機能が必要です
数秒休止して、スクリプトを何度も実行します。
私は仕事を達成するためにpcntlを使用しようとしました。だからこのスクリプトを書いた
このようにCLIからこのスクリプトを呼び出しています
process.phpが10秒間隔で何度も起動されることを期待しています。それは私が期待していた仕事をしていましたが、実行中のプロセスをチェックすると、このスクリプトによって起動された実行中の処理が数千ありました。
私の要件は非常に単純です。スクリプトは10秒の一時停止で何度も起動する必要があります。