問題タブ [gen-server]
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.
erlang - error_logger が出力するサーバーの状態は、"Last message in was" を処理するときの状態ですか?
私の下手な英語を許して、
つまり、gen_server がクラッシュしたとき、error_logger が出力さ"Last message in was"
れ"When Server State"
、サーバーの状態の値は、最後のメッセージを処理する前の状態ですか?
erlang - abcast 関数と gen_server 名の一意性に関する混乱
erlang.org/docの gen_server セクションから:
start_link(サーバー名、モジュール、引数、オプション) -> 結果
指定されたプロセスが既に存在する場合
ServerName
、関数は {error,{already_started,Pid}} を返します。
どうやら、Erlang は複数のプロセスが同じ名前を持つことを許可していないようです。
よし、今度は別の関数を見てみましょう:
abcast(名前、リクエスト) -> abcast
指定されたノードとしてローカルに登録されているgen_serversに非同期リクエストを送信し
Name
ます。
複数形の使用に注意してください。
Erlang は gen_server プロセスに一意の名前を必要とするため、関数が同じ名前を持つ複数のabcast
プロセスに送信する非同期メッセージを実装するのはなぜですか?
私は何が欠けていますか?
erlang - gen_server ソケット上の Gen_tcp リッスンはすぐに閉じられます
gen_server で gen_tcp を使用したいのですが、コードは次のとおりです。
さて、tcp_listener
は の直前waitConnetion
で閉まっていますが、その理由がよくわかりません。
handle_cast
コードを init セクションに移動すると、正しく動作します。
接続が閉じられているのはなぜですか? 私は成功せずに多くの時間を費やしています。
どんな助けでも大歓迎です。
編集:
リスナーの後にキャスト コードを移動すると、次のようになります。
私が投稿したコード:
erlang - Erlang でスーパーバイザーによってすべての gen_server を強制終了します
Erlang には、gen_server プロセス (my_gen) を開始および監視するスーパーバイザー (my_sup) モジュールがあります。my_gen を変更、コンパイル、ロードしたら、アプリケーションを再起動する必要があります。
スーパーバイザー (my_sup) によってすべてのプロセス (gen_server) を強制終了し、プロセス (gen_server) を再起動するより良い方法はありますか?
emacs - Erlang スーパーバイザー/gen_server 例外終了: noproc
私は今、これに対する問題が何であるかを理解しようとして気が狂っています。
基本的に、1 つのサーバーと 1 つの gen_event-behaviour モジュールで簡単なスーパーバイザーをセットアップしたいだけです。
今の問題は、それをもう開始できないことです。それはスーパーバイザーです。
何をしてもこのエラーが発生します: ** exception exit: noproc
text-tracer を使用すると、sRPG_supervisor:init/1 で発生することが示されます。そして、これでコードに何か問題があると思いますが、他の人の例を実行するとまったく同じ結果になります(Joe Armstrongsの例をダウンロードし、同じ結果でsellaprime_supervisorをテストしました)。
仮想Ubuntuインストールで実行すると、正常に起動していました。次に、Windowsでコーディングできるようにセットアップしましたが、これの最も単純な形式が機能することをテストしたことはなく、明らかに何らかの理由で機能しません。
したがって、誰かが同様の問題を抱えている場合は、解決策を見つけることができます! OTP 17 の Erlang バージョンとして erl6.3 を使用しています。
私が使用しているコードは次のとおりです。Emacs で生成されたスケルトンからビルドアップしたものです: sRPG_supervisor.erl
sRPG_server.erl
sRPG_event_handler.erl
何が起こるかの例を次に示します。
ご覧のとおり、サーバーはスーパーバイザーなしで呼び出されたときに機能します。
他の人が抱えていた同様の問題をよく調べましたが、役に立ちませんでした。
erlang - この場合、どのErlangの動作、つまりgen_serverまたはgen_fsmを使用する必要がありますか
特定のトランザクションについて SOAP Web サービスにクエリを実行するソリューションを開発しています。これらのトランザクションは、取得されるとデータベースに保存され、その後コールバック URL が呼び出されてデータが別のサーバーに送信されます。この問題の解決策をどのように設計するのが最善でしょうか? 私の混乱のポイントは、gen_server または gen_fsm のどちらを使用する必要があるかということです。使用する場合、ソリューションのどのコンポーネントがどこに行くのか、つまり gen_server の場合、どのタスクがサーバーに送られ、どのタスクがクライアントに送られるのかということです。
erlang - gen_server のクラッシュ ダンプを無効にする方法
いくつかの賢明な情報をその状態で保持する gen_server があります (パスワードなど)
ラガーが有効になっている、
したがって、クラッシュした場合、gen_server の状態は次のようにクラッシュ ログにダンプされます。
その結果、適切な情報がログ ファイルに書き込まれます。
gen_server の状態がログ ファイル/クラッシュ ダンプに書き込まれないようにする方法はありますか?
macos - 16358 gen_tcp:connect 呼び出し後の Erlang gen_server eaddrnotavail
Erlang でサーバーを作成していて、多数の接続を開きたいと考えています。問題は、 16358 回の呼び出しの後に{error, eaddrnotavail}gen_tcp:connect/3
を受け取ることです。以下に示すように、サーバーは非常に単純です。
MacOS Yosemite の制限を変更しました。ulimit -n
出力は 6553600 です。
私はから始めます:
サーバー:
クライアント: