【node.js】サーバサイドjavascript 5【Nashorn】 (796レス)
【node.js】サーバサイドjavascript 5【Nashorn】 http://mevius.5ch.net/test/read.cgi/tech/1518528093/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
534: デフォルトの名無しさん [sage] 2020/09/08(火) 14:51:08.13 ID:QV2EnsJl お前の場合はMySQL一つしか使わないのが当たり前かもしれないが世の中にはシャードされた複数のMySQLにアクセスしたりキャッシュのRedisにアクセスしたり検索エンジンのelasticsearchにアクセスしたりいろんなことをしなきゃいけないアプリがあったりするわけ Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる 同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない http://mevius.5ch.net/test/read.cgi/tech/1518528093/534
535: デフォルトの名無しさん [] 2020/09/08(火) 16:00:24.51 ID:8muSUg7S >>534 ああ、アクセスするのは簡単やと思うわ 問題はその結果の始末を付けるのが大変だと思うわ なんかいい書籍あるか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/535
536: デフォルトの名無しさん [sage] 2020/09/08(火) 17:40:30.89 ID:Qj0BclxS 本当に本当にダメなヤツだなぁ(呆れ) アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ >>530の例だって後始末まで書いてあるのに全然大変じゃないだろが http://mevius.5ch.net/test/read.cgi/tech/1518528093/536
537: デフォルトの名無しさん [sage] 2020/09/08(火) 19:19:05.95 ID:gglleEZ2 とりあえずオライリーでも読んだらいいんじゃない https://www.amazon.jp/dp/4873118735/ http://mevius.5ch.net/test/read.cgi/tech/1518528093/537
538: デフォルトの名無しさん [sage] 2020/09/09(水) 06:42:52.84 ID:N3PFvdWI スレ的には真っ当な質問なのに当たり強過ぎでしょ http://mevius.5ch.net/test/read.cgi/tech/1518528093/538
539: デフォルトの名無しさん [sage] 2020/09/09(水) 08:44:06.86 ID:7Dxn++Hv 質問じゃなくて文句 http://mevius.5ch.net/test/read.cgi/tech/1518528093/539
540: デフォルトの名無しさん [sage] 2020/09/09(水) 17:07:03.98 ID:SFlZHAWP 謙虚に質問してればレスも優しかったかもよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/540
541: デフォルトの名無しさん [sage] 2020/09/09(水) 21:03:51.38 ID:OFM+73CL 分からないだけならともかく延々と自分以外を貶めつつ無能を晒してたからなぁ http://mevius.5ch.net/test/read.cgi/tech/1518528093/541
542: デフォルトの名無しさん [sage] 2020/09/09(水) 21:12:34.50 ID:XGuez22g それな × node.js が悪い × 非同期が悪い × promise が悪い × async/awaitが悪い × 新人がバカ ○ ID:8muSUg7S がバカ こうだからな http://mevius.5ch.net/test/read.cgi/tech/1518528093/542
543: デフォルトの名無しさん [] 2020/09/10(木) 14:55:06.91 ID:rLZBXCmM グレたωωω http://mevius.5ch.net/test/read.cgi/tech/1518528093/543
544: デフォルトの名無しさん [] 2020/09/10(木) 19:56:10.61 ID:FWP0gZB+ clusterでマルチプロセスしようとしたんだけど 「EADDRINUSE(ポートが既に使われている)」 エラーがどうしても出てしまいます。 もちろん既に稼働しているnodeはなく、 fork元のapp.jsでlistenしているのと同じポート 子プロセスでまたbindしようとして失敗しているようで 子プロセスは外部からリクエストを受けるような ものではなく、重い処理をコア分散させて並列処理したいだけです 子プロセスにポート割り当てが必要な理由がよく分かりませんが 恐らく親プロセスと子プロセス間の通信 とかに使うんでしょうか? 子プロセスのポート割り当て回避か、 親プロセスと別ポートを割り当てる方法はありますか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/544
545: デフォルトの名無しさん [sage] 2020/09/10(木) 20:18:09.02 ID:VafdMbGz > 子プロセスは外部からリクエストを受けるようなものではなく それならclusterモジュールは必要なくね clustetは複数のプロセスを使って大量のリクエストを捌くためのもの ただの子プロセスならchild_processのメソッドを使う http://mevius.5ch.net/test/read.cgi/tech/1518528093/545
546: デフォルトの名無しさん [] 2020/09/10(木) 20:21:53.78 ID:C+K2oJgr >>545 なるほど、助かりました じつはworker_threadsも試してみて同じ エラー出たので child_processが正解でしたか これだとポートは関係ない? http://mevius.5ch.net/test/read.cgi/tech/1518528093/546
547: デフォルトの名無しさん [sage] 2020/09/10(木) 20:43:38.94 ID:oBZEl9rg clusterだと親は子を産むだけの役割じゃなかったっけ http://mevius.5ch.net/test/read.cgi/tech/1518528093/547
548: デフォルトの名無しさん [sage] 2020/09/10(木) 20:45:06.67 ID:oBZEl9rg あとworker_threadsで同じエラーが出るのはいくらなんでもおかしい http://mevius.5ch.net/test/read.cgi/tech/1518528093/548
549: デフォルトの名無しさん [] 2020/09/14(月) 20:42:48.98 ID:JdQogpR1 >>544 の者ですが 今日これをデバッグしてました。 clusterでもwoker_threadsfでも child_processでも 「EADDRINUSE」が発生しました 発生するタイミングは子プロセスを生成した時でも なく 子プロセスでMySQLに対しのコネクション確立時でもなく 確立したDBコネクションからクエリを投げるコード を実行する時に発生しますが なぜこのタイミングなのか分かりません ここで気になったのが nodeでフロントユーザーに対し 80番ポートをlistenしていて nodeがローカルのMySQLにアクセスする時 nodeのクライアントポートはフロントと おなじ80を使うのでしょうか? それとも別のランダムポートを取得してきて使うのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/549
550: デフォルトの名無しさん [sage] 2020/09/14(月) 20:55:49.60 ID:AayaioGL 説明と全然違う事象じゃねーの せめてエラーメッセージとスタックトレース貼れ http://mevius.5ch.net/test/read.cgi/tech/1518528093/550
551: デフォルトの名無しさん [] 2020/09/14(月) 20:55:58.86 ID:JdQogpR1 続きですか もう少し調べてみると 「EADDRINUSE」が発生するタイミングは MySQLに対しコネクション確立後 SQLを投げる時で間違いないと思いますが、 エラーのスタックとレースを見ても 何かのハンドラから駆動されており自分の書いたコードでは ありません。 nodeかexpressかmysqlモジュールのハンドラ だと思います 子プロセスはローカルのMySQLに対して 接続して読み書きするだけで フロントとのやり取りは一切ありませんが 生成元の親プロセスはExpressのapp.js で立ち上げてるwebアプリです http://mevius.5ch.net/test/read.cgi/tech/1518528093/551
552: デフォルトの名無しさん [] 2020/09/14(月) 20:56:11.94 ID:JdQogpR1 不思議なのが子プロセスで mysqlとコネクション確立までは失敗せずに 動作し、SQLを投げる段階で なぜか大元の「app.js」をもう1つ起動しようとしており app.jsはもう既に起動してるので、 listenポート重複により上記のエラーが発生するわけです 暫定対応で動くようにはなりましたが、 なぜローカルのDBアクセス時にapp.js実行する 動きをするのかの原因がまだ分かっていません webとは関係ないはずの子プロセスのファイルを 単体でコマンドで実行した場合も Expressのベースディレクトリにある 「app.js」が実行されていることが分かりました。 自身のコードではこのようなことをしてないので フレームワークかモジュールの内部処理だと思いますが、 知っている方がいましたら教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/552
553: デフォルトの名無しさん [] 2020/09/14(月) 20:57:39.11 ID:JdQogpR1 >>550 すみません、もう帰宅してしまったのと 機密事項で怒られるのでスタックトレースは貼れません http://mevius.5ch.net/test/read.cgi/tech/1518528093/553
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 243 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s