問題タブ [fork]

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.

0 投票する
3 に答える
422 参照

ruby-on-rails - Ruby アプリケーションを高速化するにはどうすればよいですか?

最適化しようとしているデータ集約型の Web アプリケーションを作成しています。フォークとスレッドについて聞いたことがありますが、それらが私がやろうとしていることに適用できるかどうか、もしそうならそれらを実装する方法がわかりません。私のコードは次のようになります。

つまり、基本的には、eBay と Amazon からデータを取得し、ここで解析する 2 つのアクションがあります。これらのアクションを同時に実行するにはどうすればよいですか? フォークまたはスレッドは、私が達成しようとしていることと関係がありますか?


これにより API の時間が半分になりますが、結果を返す方法がわかりません。API結果が返される前に、後続のビューがロードされます....ただし、データは返されます。コーディングするとき

スレッド内の結果がコンソールに表示されます。ただし、スレッドの外では、結果は返されません。

私は正しい軌道に乗っていますか?スレッド内から結果を返すにはどうすればよいですか? 変数がスレッド内でしかアクセスできないということですか、それとも結果が返される前にプログラムが進行するという事実に問題がありますか?


残念ながら、このアプリケーションでは、API を照会するためにリアルタイムのユーザー入力が必要です。市場での製品の価格設定に関係するため、返されるデータは最新である必要があります...たとえば、ユーザーが SKU を入力すると、その情報を使用してプログラムが該当するサイト (この場合は Amazon と eBay) にリクエストを送信します。 .) 現在、Amazon にリクエストを送信し、データを解析してフォーマットし、次に eBay に移動してデータを解析し、フォーマットします。次に、フォーマットされたデータがビューに表示されます。

私が考えたのは、これらの API 呼び出しを同時に (別のスレッドで?) 行うことができれば、返されたデータを解析して正しくフォーマットするだけで済むため、Web サービス側で時間を節約できるということでした。(これも早めにできるかも…)

0 投票する
1 に答える
1098 参照

ruby - ruby で fork が共有する IO をロックする方法

複数の ruby​​ プロセスで共有されている IO をロックするにはどうすればよいですか?

次のスクリプトを検討してください。

そして、次のようにしてみてください:

予想どおり、test-io-fork.log ファイルには IO 競合状態の兆候が含まれます。

私が達成したいのは、GPS ポイントをデータベースに保存するカスタム GPS プロトコル用の TCP サーバーを作成することです。このサーバーは 1000 の同時クライアントを処理するため、1000 のデータベース接続を同時に開くのではなく、データベース接続を 1 つの子のみに制限したいと考えています。このサーバーは Linux で実行されます。

0 投票する
5 に答える
4274 参照

unix - フォークシステムコールのアプリケーション

フォークは、呼び出されたプロセスのコピーを作成するために使用されます。これに続いて、通常、execファミリーの関数が呼び出されます。これ以外のフォークの使い方はありますか?私は1つを考えることができます。パイプ機能を使用してIPCを実行します。

0 投票する
2 に答える
3511 参照

mysql - Fork MySQL INSERT INTO (InnoDB)

テスト用に、データベースに約 5 億行のガベージ データを挿入しようとしています。現在、PHP スクリプトがいくつかのSELECT/INSERTステートメントをそれぞれ a 内にループしていますが、TRANSACTION 明らかにこれは最善の解決策ではありません。テーブルは InnoDB (行レベルのロック) です。

プロセスを(適切に)フォークするかどうか疑問に思っていますが、これによりプロセスがスピードアップしINSERTますか?このままだと140時間はかかります。次の 2 点が気になります。

  1. ステートメントが書き込みロックを取得する必要がある場合INSERT、複数のプロセスが同時に同じテーブルに書き込むことができないため、フォークは役に立たなくなりますか?

  2. 私はSELECT...LAST_INSERT_ID()(の中でTRANSACTION)を使用しています。INSERT複数のプロセスがデータベースに接続している場合、このロジックは壊れますか? フォークごとに新しいデータベース接続を作成できたので、これで問題が回避されることを願っています。

  3. いくつのプロセスを使用する必要がありますか? クエリ自体はシンプルで、2GB RAM の通常のデュアルコア開発ボックスを使用しています。8 つのスレッドを使用するように InnoDB をセットアップしました ( innodb_thread_concurrency=8) が、8 つのプロセスを使用する必要があるかどうか、またはこれが一致について考える正しい方法であるかどうかはわかりません。

ご協力いただきありがとうございます!

0 投票する
1 に答える
2033 参照

python - Python でソケットをポーリングする際の問題

ポーリング ループを開始した後、最初の繰り返しの後に出力されたすべてのメッセージを表示するには、ターミナルで Enter キーを押す必要があります。

0 投票する
2 に答える
1226 参照

bash - bashスクリプトを使用してバックラウンドでプロセスを実行する

次のようにスクリプトを実行したい:

ランナー:ssh'javaプログラム&' ssh'javaプログラム&'

最初のプロセスをフォークするスクリプトを作成するにはどうすればよいですか?現在、終了するのを待っています。

ありがとう

0 投票する
2 に答える
589 参照

php - PHP のフォークは、最初に終了したものに応じて親プロセスまたは子プロセスをランダムに処理します

こんにちは、2 つの別々のページを同時にロードし、それらからテキストを取得することを想定している単純なスクリプトがありますが、最初に終了したプロセスに応じて、親プロセスまたは子プロセスのいずれかをロードします。何が間違っていますか? ? 2 つのプロセスを同時に動作させたいのですが、サンプル コードは次のとおりです。

どんな助けでも大歓迎です!

0 投票する
2 に答える
1094 参照

python - Python2.5以下でシェルを使用せずに実行可能なプロセスを作成する

タイトルの内容:

  1. subprocessモジュールは2.4および2.5で動作するため、使用できません。
  2. 引数を渡すためにシェルプロセスを生成しないでください。

(2)を説明するために、次のコードを検討してください。

ご覧のとおり、システムシェル( "sh")を介して、指定されたコマンド( "foo")を表示os.systemして実行します。os.popen私はこれが起こらないようにしたいです(そうでなければ、醜い「見つかりません」メッセージが私の制御なしでプログラムstderrに出力されます)。

最後に、このプログラムに引数を渡すことができるはずです(上記の例では「arg」)。

Python 2.5および2.4でこれを行うにはどうすればよいですか?

0 投票する
1 に答える
390 参照

python - ajax プッシュ、ロング ポーリングを行うための子サーバーの Python フォークを支援する

わかりました、私は基本的なpythonしか知りませんが、これについて助けが得られるなら、オープンソースにすることを検討しています.

私がやろうとしていること: - (完了) 初期化コンテンツの Ajax 送信 - 最新のコンテンツを送信するための Python サーバー recv コマンド "init" - (完了) Ajax recv コンテンツを実行し、すぐに Python サーバーにコールバックする - Python サーバー recv コマンド "子をセットアップし、ajax からのコマンド「new」を待機します - (完了) Ajax は「new」コマンドを送信します - Python サーバーは待機中のすべての子を起動し、最新のコンテンツを送信します - (完了) Ajax は「待機」を送信します。前方へ

私は既に PHP で Python サーバーの部分を作成しましたが、100% CPU を使用するため、複数のプロセスを待機させるにはフォーク ソケット デーモンを使用する必要があることがわかりました。今、私はこれをPHPで書くことができましたが、必要な拡張機能は手動でインストールする必要があり、共有アカウントなどにインストールするようにホストに依頼すると問題になる可能性があります. そこで、より柔軟で高速に実行できる Python に目を向けました。さらに、より多くの人がそれを使用できます。

ですから、誰かがこれを手伝ったり、何らかの方向性を示したりできれば、それは素晴らしいことです.

私は自分でコードに取り組んでいますが、それが十分にわかっていません。さまざまなコマンドに if ステートメントを追加し、自分で mysql 接続を追加できます。何か困ったことがありましたら、こちらで質問させていただきます。このサイトが大好きです。

0 投票する
3 に答える
3407 参照

python - Djangoで、起動時間が遅いサブプロセスを呼び出す方法

LinuxでDjangoを実行していて、ビューがあり、そのビューが作成するファイルを操作するcmdというサブプロセスからデータを返すようにしたいとします。たとえば、次のようになります。

ここで、cmdの起動時間は非常に遅いが、動作時間は非常に速く、ネイティブにデーモンモードがないとします。このビューの応答時間を改善したいと思います。

ワーカープールでcmdのインスタンスをいくつか起動し、入力を待機させ、call_processにそれらのワーカープールプロセスの1つにデータの処理を依頼させることで、システム全体の実行速度を大幅に向上させたいと思います。

これは実際には2つの部分です。

パート1。cmdおよびcmdを呼び出す関数は入力を待ちます。これはパイプで行うことができます、すなわち

パート2。データを待機しているバックグラウンドで実行されている一連のワーカー。つまり、サブプロセスがすでに実行されるように上記を拡張する必要があります。たとえば、Djangoインスタンスが初期化されるとき、またはこのcall_processが最初に呼び出されるときに、これらのワーカーのセットが作成されます。

次のように、どこかにワーカーの初期化が必要です。

さて、私が上に持っているものは次のようなものになります:

さて、質問:

  1. これは機能しますか?(これを頭のてっぺんからStackOverflowに入力したので、問題があると確信していますが、概念的には機能します)

  2. 探すべき問題は何ですか?

  3. これに代わるより良い方法はありますか?たとえば、スレッドも同様に機能しますか(Debian Lenny Linuxです)?このような並列プロセスワーカープールを処理するライブラリはありますか?

  4. 意識すべきDjangoとのやり取りはありますか?

読んでくれてありがとう!これが私と同じくらい面白い問題だと思っていただければ幸いです。

ブライアン