問題タブ [gen-fsm]
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のスーパーバイザーによって再起動されたプロセスの最後のサイクルであることをどのように知ることができますか?
子供がいるsimple_one_for_one
上司がいgen_fsm
ます。各子gen_fsm
が最後に終了したときにのみメッセージを送信するようにします。最後のサイクルがいつなのかを知る方法はありますか?
これが私の上司です:
これPid
は、スーパーバイザーを開始し、子プロセスを開始する命令を出すプロセスの Pid です。
私のポイントは、プロセスがいずれかの状態で失敗した場合、スーパーバイザーによって最後に再起動された場合にのみメッセージを送信する必要があるということです (再起動戦略に従って)。
失敗した場合gen_fsm
、同じ状態データで同じ状態から再起動しますか? そうでない場合、どうすればそれを発生させることができますか?
erlang - 複数の erlang ビヘイビアーの使用
erlang の組み込み gen_tcp を使用して、tcp 経由でリモート サーバーと通信する erlang gen_fsm プロセスがあります。
これをWebソケットクライアントにしたいと思います。いくつかの調査の結果、この erlang websocket クライアント ライブラリErlang Websocket clientを取得しました。
いくつかの例を見ると、
-behaviour(websocket_client_handler)。
基本的に、私は start_link でこれを行います
ただし、他の動作では、init と異なる状態の異なる戻り値が必要です。gen_fsm の状態は既にあります。
誰かがこれについていくつかのコンテキストを投げることができますか?
同じモジュールに対して 2 つの動作を定義することは何も悪いことではないと思いますが、各動作が init/[1/2] 関数で異なる戻り値の型を必要とすることを考えると、これが本当に実現可能かどうかを考え始めます。経験豊富な人に連絡したかっただけです。
ありがとう。