問題タブ [gen-event]

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 に答える
275 参照

erlang - OTP イベント マネージャ プロセスの状態 (ハンドラではありません!)

OTP イベント マネージャ プロセス (ロガーなど) は、独自の状態 (ログ レベルなど) を持ち、それに基づいてイベントをフィルタ/変換できますか?

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

events - Erlang gen_event が機能しない

単純な gen_event アプリケーションを erlang で作成しようとしています。

私のコード:

通知しようとすると、関数 handle_event({test}, State) が実行されることを期待していますが、何も起こりません。なんで?どうしたの?

そして、gen_eventの簡単な例はどこで見ることができますか?

ありがとうございました。

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

erlang - Erlang: リモート マネージャーに gen_event グローバルを使用する

ローカルに登録すると、イベント フレームワークを問題なく開始できます。

registered() を呼び出すと foo_event_container が表示され、それにメッセージを送信すると、ハンドラーに表示されます。

ただし、ノードを再起動して試してみると

registered() はコンテナーを表示しません。コンテナーにハンドラーを追加しようとすると、

Sasl は追加情報を提供しません。この問題をグーグル検索すると、コンテナーを実行しているシェルが強制終了されたことが推測されますが、同じノードからアクセスしようとしているため、ここでは当てはまりません!

1) ここで何が起こっているのか、何か考えはありますか?
2) リモート コンテナーを使用するのが最適な設計ですか?それとも、すべてのサーバーがリモート プロセスにメッセージを送信するローカル コンテナーを使用する方がよいでしょうか?

ありがとう!

0 投票する
4 に答える
2062 参照

tcp - Erlangは着信TCP接続を動的に受け入れます

私が解決しようとしていること:特定のポートでリッスンするErlang TCPサーバーがあり(コードはある種の外部向けインターフェイス/ APIに存在する必要があります)、各着信接続はによって処理される必要がありますgen_server(つまり、gen_tcp:acceptコード化する必要があります) )の内部gen_serverですが、実際には、着信接続を受け入れる事前定義された数のプロセスを最初に生成したくありません)。それはどういうわけか可能ですか?

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

erlang - gen_eventmanagerにアトミックに通知して停止します

マネージャープロセスが特定のメッセージを受信した場合、gen_eventすべてのハンドラーがそのメッセージを処理した後、他のイベントを取得して処理する前に、メッセージを停止する必要があります。私が見つけることができる唯一の方法はこれです:

remove_handlerただし、これにはすべてのハンドラーがから戻る必要があります。そうしないと、前後handle_event({stop, Reason}, State)の別のプロセスから送信されたイベントを処理できます。ハンドラーに要件を課さないアプローチが必要です。sync_notifystop

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

erlang - 同じイベント ハンドラーの複数のインスタンスを異なる状態で使用するにはどうすればよいですか?

定期的に発生するイベントを持つ OTP アプリケーションがあります。イベントに応じて何かをしたいアクターが何人かいます。各アクターが行うことは、それ自体の状態の関数ですが、それ以外は同一です。

私の問題は、このセットアップを監視ツリーに組み込む方法にあります。各アクターがイベント ハンドラーである gen_event マネージャーがあります。これは、gen_event 監視が奇妙であるという事実がなければ、うまく機能します。最初のハンドラーが終了add_sup_handlerすると、残りは失敗しalready_started、イベント ハンドラーのスーパーバイザーとして機能している gen_server が停止します。

それで、私はここで何をすべきですか?すべてのアクターとその状態を追跡できる独自のイベント マネージャーを作成する必要があると考え始めています。

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

erlang - Erlangでgen_eventの動作を拡張する

私は、さまざまなイベントハンドラーを使用するイベントマネージャーを作成しています。このイベントマネージャーには、さまざまなイベントが通知されます。各ハンドラーは特定のイベントのみを処理し、残りは無視します。各ハンドラーは、状況に基づいて他の特定のイベントをトリガーすることもできます。

たとえば、最初に処理するハンドラーEvent1

処理する2番目のハンドラーEvent2

イベントのトリガーはハンドラーのgen_event:notify(self(), NewEvent)内で呼び出すことで実行handle_eventできますが、イベントマネージャーから呼び出すことができるように、抽象化してエクスポートしたいと思います。

パターンマッチング、イベントの無視、イベントのトリガーはすべてのハンドラーに共通しているので、とにかくgen_event動作を拡張してそれらを組み込みとして提供することはできますか?

カスタム動作を作成するデフォルトの方法から始めます。

次に何をすべきかわかりません。

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

erlang - gen_eventhandle_infoが呼び出されない

私はgen_eventの動作を使用しており、イベントの処理とは別に、他の一般的なメッセージを処理できるようにしたいと考えています。ドキュメントによると、これらのメッセージはhandle_infoを介して受信する必要があります。しかし、これは機能していないようです...私が非常に明白な何かを見逃していない限り!

これが私の振る舞いの実装です:

そして、これが私の使用法です

問題は、コードio:format( " Info〜p〜n"、[ Info ])に到達しないことです。

私はあまり愚かなことをしていないことを願っています!ありがとう

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

http - スーパーバイザーを備えた Erlang socket.io サーバー

現在、 socket.io-erlangを使用して単純なチャット サーバーを作成しようとしています。Erlang の学習を始めたばかりなので、モジュールで動作するようにデモを適応させるのにいくつか問題があります。あなたが私を助けてくれることを願っています、これが私がこれまでに持っているものです。まだ機能はありませんが、今回は機能させたいだけです (起動後にいくつかのクラッシュレポートを受け取ります。必要に応じて読むことができます)。

アプリ

スーパーバイザー

Socket.IO イベント ハンドラ

HTTP リクエスト ハンドラ

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

erlang - Erlang - スーパーバイザーと gen_fsm での例外終了

calculadoralog_calculadoraおよびの3 つのモジュールがありsupervisor_calculadoraます。Calculadoragen_fsm を使用して合計、減算、乗算、および除算を行う単純な計算機であり、スーパーバイザーはスーパーバイザーの動作を実装します。Calculadora はうまく動作calculadoraしますが、除算 0/0 または例外を作成したときにモジュールを再起動する必要があるスーパーバイザーを試してみると、機能しません。なんで?

PD: モジュールlog_calculadoraは、私が行った操作をcalculadoralog.txt ファイルに書き込むだけです。TEST モジュールは、私に例外終了を与えるモジュールです。

電卓:

スーパーバイザー:

テストモジュール