問題タブ [spawn]
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.
c - 独立した子供を産む
C を使用して、父親のことを考えずにビジネスを行う独立した子プロセスを生成するにはどうすればよいでしょうか?
いくつかのプロセスを生成したいのですが、それらが作成された直後に、それらは仕事をする前に約2分間スリープします。
ただし、その間にさらにプロセスを生成したいので、子が完了するまで父親を待たせたくありません。
私はLinuxを使用しています。
process - スーパーバイザーの子とプレーンな spawn_link
「monitor_node」と呼ばれるプロセスの階層があります。これらの各 monitor_nodes は、1 つのスーパーバイザによって監視されます。
さて、これらのノードのそれぞれは、複雑な内部構造を持つ場合があります。つまり、適切に動作するために必要ないくつかのサブプロセスがある場合とない場合があります。例: keep-alive メッセージを送信するプロセス。これまでのところ、プレーンな spawn_link を使用してこれらの「内部」プロセスを作成してきました。
しかし、monitor_node (監視されている) の init 関数でそれらを生成すると、この関数が失敗することがあります (したがって、スーパーバイザー ツリー全体が失敗します)。私の質問は、これらの内部プロセスをスーパーバイザー ツリーに接続することは良い解決策でしょうか? monitor_node を内部プロセスを監視するスーパーバイザーに変更することを考えています。
私の疑問は次のとおりです。
非常に多くの非常に小さなプロセスを監視する必要があります。これが良い習慣かどうかはわかりません。
特定の「内部」プロセスが単純なプロセスであるか、何らかの内部構造を持っている(他のプロセスも生成する)ことを事前に知らない場合があります。後者の場合は、おそらくこれらの「内部内部」プロセスをスーパーバイザー ツリーにアタッチする必要があります。
あまり混乱していないことを願っています。答えを楽しみにしています。
編集:
非常によく似た(同じではないにしても)問題がここで議論されています(3番目の投稿)。与えられた解決策は、I GIVE CRAP ANSWERS が与えたものとほとんど同じです。
node.js - NodeJS child_processes.spawn を使用してスクリプトを実行するときに開いているファイルが多すぎる
シナリオ:
サーバーに対して負荷テストを実行するために、マスター スクリプトを使用して可変数の子プロセスを可変回数生成します。
マスター スクリプトは最初に (その構成設定に従って) 可能なすべての子プロセスを生成し、構成によってさらに実行が要求された場合に子プロセスが終了すると、新しい子プロセスが起動されます。
私が見ているのは、83 番目の子プロセスを起動しようとするとすぐに失敗することです。83?
子生成プロセスの一部として開かれたファイルを明示的に閉じるために何もしていませんが、おそらくそれはオープニングコードの仕事ではなく、child_processesモジュールコードですか?
82個の子プロセスのマジックナンバーがとても気になります。これは、ノードの制限またはシステム上のノードの組み合わせに関する何かを示しているようです?
理想的には、この質問が答えられるという知識が不足している、または誰かがこの問題に悩まされないスクリプトの子プロセスを起動する別の方法を提案できますか?
また、NodeJS に追加される予定の Web Worker API のステータスについても知りたいと思っています。それについて何か知っている人はいますか?
詳細:
- NodeJS v0.4.7
- Mac OS X v10.6.7
- ulimit -n = 256
- 正常に実行されるスポーンされた子のマジック ナンバー = 82 (つまり、82 を超えるスポーンされた proc は「開いているファイルが多すぎます」というエラーをスローします)
助けてくれてありがとう。
tcl - スポーンが実行されていないことを期待
こんにちは、a.expという名前のexpectスクリプトに従っています
ここで、a.txt には次の 1 行の文字列テキストが含まれます
次に、次のコマンドを使用して実行可能にしました
今、私は次のように実行します
私が得る出力は次のとおりです
一方、次のスクリプトを使用すると
それ以外の
a.txt ファイルの内容を出力します。spawn を使用して実行するのを手伝ってもらえますか? ありがとう!
python - Pythonで安全なプラットフォームに依存しないダミープロセスを生成します
さまざまなOSプラットフォームで実行し、別々のプロセスと対話する必要があるコードを書いています。そのためのテストを作成するには、Pythonから、停止の合図を待つだけのプロセスを作成できる必要があります。より多くを再帰的に作成するいくつかのプロセスを作成できるようにしたいと思います。
また(この部分は少し奇妙かもしれませんが)、作成プロセスの子ではないプロセスを作成できれば、テストに最適です。たとえば、os.waitpid
許可がない条件をエミュレートできます。プロセスと対話する場合、または1つのプロセスがファクトリに直接作成するのではなくプロセスを作成するように信号を送る場合。
erlang - スポーンの戻り値を理解する
私はErlangを使い始めておりspawn/3
、process_info/1
メソッドに返されたPIDを適用するときにさまざまな結果を理解するのに少し役立つかもしれません。
関数がエクスポートされるこの単純なコードを考えると、メッセージを待機するをa/0
呼び出すだけです。b/0
...シェルからの出力が異なる理由を理解するのを手伝ってください:
例1:
ここで、current_function
ofPid
は次のように表示されtester:b/0
ます。
例2:
ここで、current_function
ofprocess_info/1
は次のように表示されtester:a/0
ます。
例3:
ここで、current_function
ofprocess_info/1
はであると示されてtester:a/0
いますが、current_function
ofPid
はtester:b/0
:です。
が呼び出されたときにバックグラウンドで非同期コードが発生していると思いますspawn/3
が、変数の代入と引数の受け渡しは(特に最後の例では)Pid
1つの値をprocess_info/1
取得し、別の値を取得するようにどのように機能しますか?
そのような場合に変数の代入をバインドするErlangに特別なものはありますが、引数の受け渡しにはそのようなバインドは提供されていませんか?
編集:
このような関数を使用する場合:
...メッセージはから正しく返されますtester:b/0
:
しかし、私がこのような関数を使用する場合:
...process_info/1
まだ表示されますtester:a/0
:
これらすべてをどうすればよいかわからない。たぶん、私はそれを私の賃金等級を超えているとして受け入れる必要があります!
erlang - Erlang のスポーンの問題
Erlang の 'spawn' に問題があります。しばらくするとプロセスが停止するようです。簡単なコードは次のとおりです。
これを実行したときの例を次に示します。
理解できません。プロセスが死ぬか何か?終了してはいけません!Windowsに関連する可能性がある場合、私はWindows 7で実行しています。
ありがとう
編集: application:start(sasl) を実行するとどうなるかを示します。前:
javascript - Node.js - gzip プロセスの生成
Node.jsを使用して一部のデータをgzipしようとしています...
具体的には、「buf」にデータがあり、これを gzip 形式で「stream」に書き込みたいと考えています。
これが私のコードです:
問題は、それが機能しないことです。プロセスを生成し、それらにデータをパイプするための正確な構文はわかりません。
どんな助けでも大歓迎です。
よろしくお願いします。
編集:これは、私がアイデアを得た元の作業コードです。プロジェクトはhttps://github.com/indutny/node.gzipにあります。
node.js cosでこのスポーンを行う方法を誰でも解決できますか?私は完全に立ち往生しています!
linux - Linux で sig*set 関数を使用するには?
spawnp への呼び出しを fork-exec に変換しようとしています。しかし、私が取り組んでいるコードでは、継承データ構造を使用して、いくつかのシグナル設定を子に渡しています。これらは次のとおりです。
spawnp を使用せずにシグナル設定を渡すにはどうすればよいですか? sigfillset および pthread_procmask 関数を使用しますか? もしそうなら、この構文は正しいですか? sigfillset() で sigset 変数を設定した場合、その設定は問題のプロセスにどのように渡されますか?
あなたの助けに感謝 !
java - サーブレットからスレッドを生成しますか?
Webサービスを呼び出し、データを取得してサーブレットの応答を取り込むサーブレットがあります。私も長く待ちたくないです。新しいスレッドを生成してWebサービスを呼び出すことはできますか?これが推奨されない場合、より良い方法は何ですか?
ありがとう