問題タブ [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プロセス(PID)が実行されているノードを確認するにはどうすればよいですか?
ノード間でもプロセスから別のプロセスにPIDを送信できるとすると、別のプロセス内(おそらく別のノード上)のプロセスからPidを受信した場合、問題のPIDが実行されているノードを見つけるにはどうすればよいですか?の上?
erlang:process_info(Pid)
その情報が含まれていないようです。
ありがとう。
xml - erlang で既存の xml ドキュメントの大量のデータを変更する方法
サイズが約 1 メガバイトの既存の XML ドキュメントがあるとします。したがって、全体としてはかなり小さいですが、それでも自明なほど小さいわけではありません。今、私はほとんどの場合、小さなリストのようなデータを挿入したり、このドキュメント内のいくつかのノードにテキストを追加したりして、このドキュメントで作業したいと考えています。約25の修正としましょう。erlang でこれを行う最善の方法は何ですか。
ありがとう。
-デニス
erlang - Erlang: プロセス用の単純な pubsub — 私のアプローチは大丈夫ですか?
免責事項: 私は Erlang と OTP にかなり慣れていません。
Erlang/OTP で単純な pubsub が必要です。プロセスは「ハブ」でサブスクライブし、そのハブに送信されたメッセージのコピーを受信できます。
については知ってgen_event
いますが、イベントを 1 つのイベント マネージャー プロセスで処理する一方で、すべてのサブスクライバーを個別の自律的なプロセスにしたいと考えています。また、私はgen_event
のハンドラーの監督を理解することができませんでした。残念ながら、Google の結果は XMPP (Ejabberd) と RabbitMQ のリンクでいっぱいだったので、私のアイデアに関連するものは何も見つかりませんでした。
私の考えでは、そのような pubsub モデルは監視ツリーにシームレスにマップされます。そこで、スーパーバイザー (gen_server
フードの下) を拡張して、そのすべての子にキャスト メッセージを送信できるようにすることを考えました。
私はこれを私の手っ取り早いカスタム「ディスパッチャー」動作でハッキングしました。
ただし、一見するとすべてがうまく機能しているように見えますが (子供はメッセージを受信し、失敗するとシームレスに再起動されます)、これが良いアイデアだったのはいつなのだろうかと思います。
誰かが私のアプローチを批判 (または承認) してくれませんか?
erlang - 商用システムの構築: 純粋な Erlang または Erlang/OTP?
私は Erlang でシステムを構築しようとしています (私の問題は複数の CPU でよりよく解決できます)。
- Erlang を学びましょう。
- Erlang/OTP の動作
- Erlang のプログラミング(Armstrong);
- Erlang プログラミング(Cesarini)。
Erlang/OTP in Action book (2) は次のように述べています:非 OTP の方法は、OTP に関して正しい習慣をすぐに身につけることができるので、ありがたいことです...」
(2) は、商用システムは OTP のみで構築する必要があると主張していますが、(4) は OTP がこれを行う唯一の方法ではないことを穏やかに示しています。
さらに、(4) を読むことで、Erlang の非常に基本的な知識を構築することが、OTP の仕組みを理解するのに役立つことがわかりました (ただし、その逆ではありません)。
そこで問題は、商用システムを構築するために Erlang/OTP を選択すべきか、それとも純粋な Erlang で実行できるかということです。
architecture - Erlang / OTPベースの分散型フォールトトレラントマルチコアシステムのアーキテクチャをどのように設計しますか?
「恥ずかしいほど並列」の問題を解決するErlang/OTPベースのシステムを構築したいと思います。
私はすでに読んだ/スキミングしました:
- いくつかのErlangを学びましょう。
- プログラミングErlang(アームストロング);
- Erlangプログラミング(Cesarini);
- Erlang/OTPの動作中。
プロセス、メッセージング、スーパーバイザー、gen_servers、ロギングなどの要点があります。
特定のアーキテクチャの選択が関係するアプリケーションに依存することは理解していますが、それでもERlang/OTPシステム設計のいくつかの一般的な原則を知りたいと思います。
スーパーバイザーを備えたいくつかのgen_serversから始めて、それを段階的に構築する必要がありますか?
スーパーバイザーは何人必要ですか?システムのどの部分をプロセスベースにするかを決定するにはどうすればよいですか?ボトルネックを回避するにはどうすればよいですか?
後でログを追加する必要がありますか?
Erlang / OTP分散型フォールトトレラントマルチプロセッサシステムアーキテクチャへの一般的なアプローチは何ですか?
erlang - OTP アプリケーションとして実行できる Erlang Web フレームワーク
小さな Erlang/OTP システムを開発しており、そのための Web フロントエンドが必要です。
ユーザー、登録、データベース機能をすべて自分で書きたくないので、フレームワークを探しています。
私はそれをシステムに組み込み、システムのすべてのコンポーネントをフォールト トレラントにするためにスーパーバイザーによって監督されたいと考えています。
Erlang/OTP アプリケーションの監視対象部分として使用できる Erlang ベースの Web フレームワークは存在しますか?
java - com.ericsson.otp.erlangでerlang用語が空かどうかを判断する方法
Javaプログラムでは、Erlangタプルを受け取り、それをで抽出しOtpErlangTuple
ます。タプルの要素の1つは文字列である必要がありますが、空にすることもできます。空の場合、その値は[]
-空のリストを表すErlangの方法です。
私の質問は、要素が空であるかどうかを確認して、それをOtpErlangString
?にキャストする方法です。
現在のよう(OtpErlangString)messageData.elementAt(2)
に、次の例外が発生します。
class java.lang.ClassCastException
, 'com.ericsson.otp.erlang.OtpErlangList cannot be cast to com.ericsson.otp.erla
ng.OtpErlangString'
ありがとう、
マーティン
erlang - Erlangスーパーバイザー:すべてのワーカーが返信したかどうかを確認する方法
N人のワーカープロセスを持つスーパーバイザーがいます。いつものように、スーパーバイザーはワーカープロセスにメッセージを送信できhandle_cast
、ワーカーからスーパーバイザーに応答を送信するがあります。
N人の労働者全員が上司に返信したことを正確に確認するにはどうすればよいですか?あらゆる種類のイベント処理でこれを実装することは可能ですか?つまり、ある種のETSで、スーパーバイザーに「OK、全員が応答しました」と伝え、スーパーバイザーに「すべてのNプロセスが応答しました」ステータスを毎秒チェックさせないようにすることは可能ですか。子レジストリテーブル?
erlang - スーパーステップなしでErlangにPregelを実装することは可能ですか?
Erlang でPregelを実装するとしましょう。なぜ実際にスーパーステップが必要なのですか? 1 つのスーパーバイザーからノードを表すプロセスにメッセージを送信するだけの方がよいのではないでしょうか? 計算機能を自分自身に適用し、互いにメッセージを送信し、「完了」メッセージをスーパーバイザーに送信するだけです。
Pregel の並行 Erlang 実装におけるスーパーステップの全体的な目的は何ですか?
erlang - これにはどのOTP動作を使用する必要がありますか?
TCP接続を受け入れるサーバー(gen_tcpを使用するgen_server)があり、接続ごとにスーパーバイザーを生成します。次に、そのスーパーバイザー(別のより永続的なスーパーバイザーによって監視される)は、プロトコル固有のハンドラーとデータベースと通信するクライアントコンテキストの2つのプロセスを生成します。
プロトコルハンドラーは、ソケットからTCPメッセージを受け取り、それらをクライアントコンテキストのメッセージに変換します。クライアントコンテキストはそれらのメッセージを受け取り、データベースと通信し、プロトコルハンドラーがTCP(telnet、ssh、websockets、HTTP ...)で使用しているプロトコルに変換するメッセージを返し、クライアントに送り返します。
私が知りたいのは、プロトコルハンドラーとクライアントコンテキストプロセスに適切なOTPの動作です。gen_serverを悪用する可能性がありますが、プロセスペアごとに1つの接続です。gen_fsmは、通過する状態がいくつかあるため、プロトコルハンドラーで機能するように見えますが、クライアントコンテキストにはかなり不適切です。クライアントコンテキストのgen_eventについて考えていましたが、これはイベントアグリゲーター向けであり、単一のソースからのイベントのみを処理すると信じられてきました。
私はこれを完全に間違った方法で行っていると言ってください。この複合施設の近くでOTPアプリケーションを作成しようとしたのはこれが初めてです。