GETパラメーターをデコードし、エンコードされた形式でデータを返すWebサーバーにnodejsを使用しています。デコード/エンコードは、同期しているように見えるnodejsのcryptoモジュールを使用して行われます。1 つの要求を処理するのにかかる時間は十分に高速ですが、イベント ループをブロックすると、サービスの同時実行性が低下します。
私の要件は単純です。エンコード/デコード機能をイベントループの外側にします。
- 別のプロセス (child_process または cluster)
これは、この目的のためだけに別のプロセスにすることもできますが、エンコード/デコードが子プロセスでブロックされるため、子プロセスが新しいメッセージを受信するのを停止します。つまり、2 つの文字列が子プロセスとしてエンコードされる状況は決してありません。シングルスレッドにもなります。
- リクエストごとに個別のスレッド (threads-a-gogo または fiber または node-webworker)
エンコード/デコード操作を実行するリクエストごとに個別のスレッドを作成しますが、どのモジュールも期待どおりに動作しないようです。つまり、threads-a-gogo は npm を介してインストールされず、ファイバーは実行時に個別のスレッドを作成しませんでした。 ()、node-webworkerが機能していません。
誰かが同様の問題に直面したことがありますか、または単純なメッセージの受け渡しで nodejs でスレッドを簡単に作成する方法がありますか。