問題タブ [erlang-otp]
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 - タイムアウト前にプロセスを終了させる
Erlang プロセスは、たとえ作業が終了しても 5 秒のデフォルト タイムアウトまで生き続けるようです。
ウィンドウ CLI にコマンドを発行する gen_server 呼び出しがあります。コマンドは 1 秒未満で完了しますが、プロセスは操作の結果が表示されるまで 5 秒待機します。どうしたの?タイムアウトと関係があるのでしょうか、それとも何か他のものかもしれません。
EDITこの呼び出しは 5 秒間何もしません (デフォルトのタイムアウトです!)
erlang - gen_serverを使用してmnesiaテーブルをカプセル化しますか?
私はErlangで作られたサーバーアプリケーションを持っています。その中に私は写真に関するいくつかの情報を保存するmnesiaテーブルを持っています。「すべてがプロセスである」という精神で、私はそのテーブルをgen_server
モジュールでラップすることにしました。そのため、
gen_server
モジュールはテーブルに直接アクセスする唯一のモジュールです。そのテーブルへの情報のクエリと追加は、そのプロセス(登録された名前を持つ)にメッセージを送信することによって行われます。アイデアは、そのテーブルから情報をクエリするいくつかのクライアントプロセスがあるということです。
これは問題なく機能しますが、そのgen_server
モジュールには状態がありません。必要なものはすべてmnesiaテーブルに保存されます。それで、私gen_server
はおそらくそのテーブルをカプセル化するための最良のモデルではないのだろうか?
単にプロセスにするのではなく、そのモジュールの関数を介してテーブルをカプセル化するだけでよいのでしょうか。gen_server
そのモジュールにバグがあると、呼び出しプロセスがクラッシュします。これは、プロセスがクラッシュして全員が残る現在とは対照的に、単一のクライアントにのみ影響するため、より良いと思います。
テーブルにアクセスせずに(スーパーバイザがテーブルを再起動するまで)。
どんな入力でも大歓迎です。
erlang - SSL 暗号化を使用してノンブロッキング TCP サーバーを構築する方法
trapexit.org のノンブロッキング TCP サーバーで tcp_genを基にサーバーを構築する方法が説明されていますが、この例を変更して ssl で動作するようにしたいと考えています。今のところ、交換方法がまったくわかりません
list - Erlangリスト:index_of / 2関数?
リスト内の特定の要素のインデックスを返すErlangライブラリ関数を探しています。
だから、もし
java.util.List
のindexOf()
メソッドと同じように、1などを返します。
そのようなメソッドはErlang標準ライブラリに存在しますか?リストモジュールを調べてみましたが、うまくいきませんでした。それとも私はそれを自分で書くべきですか?
erlang - Erlang gen_server とステートレス モジュール
私は最近、ジョーの本を読み終えましたが、とても楽しかったです。それ以来、erlang を使用してソフト リアルタイム アプリケーションのコーディングを開始しましたが、gen_server の使用について少し混乱していると言わざるを得ません。
単純なステートレス モジュールの代わりに gen_server を使用する必要があるのはいつですか? 私はステートレス モジュールを次のように定義します。
インボイス マネージャー タイプのモジュールの場合、初期化して状態を返す必要がありますか? SomeState = InvoiceManager:Init()、SomeState = InvoiceManager:AddInvoice(SomeState, AnInvoiceFoo)。
請求書マネージャーの状態の複数のインスタンスが必要だとします (私のアプリケーションは、それぞれ独自の請求書を持つ複数の会社を管理しているとします)。それぞれが請求書を管理するための内部状態を持つ gen_server を持っている必要がありますか、それとも単にステートレス モジュールを使用する方が適切でしょうか?その上?
両者の境界線はどこにあるのでしょうか?
(上記の請求書管理の例は、私の質問を説明するための例です)
erlang - Erlang でのイベント マネージャー プロセス。名前付きプロセスまたは PID?
イベントをサブスクライバーにディスパッチするイベント マネージャー プロセスがあります (http_session_created、http_session_destroyed など)。名前付きプロセスの代わりに Pid を使用すると、イベント マネージャーで動作するように関数に入れる必要がありますが、名前付きプロセスを使用すると、コードがより明確になります。
どのバリアントが正しいですか?
ありがとうございました!
erlang - Erlang otp ダウンロード
http://code.google.com/p/otp-base/と http://www.erlware.org/からのダウンロードの違いは何ですか?
erlang - Erlang の gen_server でコード スワッピングを実現する
再起動する必要がないように、gen_server で Erlang のホット コード スワップ機能を利用したいと考えています。どうすればいいですか?検索したところ、コールバックを利用する必要があると述べた記事が 1 つしか見つかりませんでしたgen_server:code_change
。
ただし、これを使用する方法に関するドキュメント/例は実際には見つかりませんでした。ヘルプやリソースへのリンクは大歓迎です!
erlang - 未登録の動的に作成されたgen_serverの使用例?
OTPアプリケーションで名前が付けられたgen_serversを操作するためのチュートリアルはたくさんあります。ただし、登録されていない(名前が付けられていない)サーバーを動的に生成する良い例を見つけることができませんでした。誰かが良い、簡単な例を指摘できますか?たとえば、私が得ようとしている核となるアイデアを混乱させることがたくさんある場合は、ejabberdではありません。
ありがとう。
erlang - メッセージを受信しない場合にgen_fsmがタイムアウトすることを許可する
通常、Erlangプロセスのタイムアウトが必要な場合は、次の構成を使用します。
gen_fsmなどのOTPサーバーに同様のメカニズムがありますか?アプリケーションとのアクティブなセッションごとにgen_fsmを生成し、メッセージの受信後に非アクティブのタイムアウト値を超えた場合にそれらを終了させたいと考えています。
必要に応じて独自のカスタムプロセスを作成できますが、可能であればgen_fsmを使用することをお勧めします。