2016-09-20 6 views
0

メッセージ(rabbitmq)を送信して簡単にアプリケーションを作成したいです。プログラムを実行するとき、私はメッセージを書き、それを(同じコンソールで)受信したいと思います。それでは、(プログラムを起動した後に)常時実行され、メッセージを受け取るのを待つメソッド "subcribe"をどのように書くことができますか?同時に私はメッセージを書くことができるはずです1つのファイルでパブリッシュとサブスクライブを行うにはどうすればよいですか?

+0

私も同じ程度に非常に興味があります。 – arpit

答えて

0

監督されたアプリ(mix my my_app --sup)を作成してください。 2つのGenServerを実装します.1つは受信用(MyApp.Reader)、もう1つは送信用(MyApp.Writer)です。両方のGenServerをスーパーバイザ仕様のワーカとして追加します。

あなたのRabbitMQアダプター(エリクサーと一緒に使用したことがないので、二重チェックする必要があります)も監督されると思います。その名前を付けて、その名前をGenServerのinitメソッドに渡します(例えば、あなたのワーカーを宣言するときに渡すargsを介して)

MyAppでライター用のAPIを直接実装することもできます。検査使用して、その側に、すべてのメッセージを受け取ることになる、MyApp.send("some message")

あなたの受信機の労働者、およびCLIにそれらを印刷、いずれか、またはロガー:

def send(message) do 
    GenServer.cast(:name_of_writer, $message) 
    end 

ます。次に行うことができます:ような何かモジュール

がGenServerドキュメントを見てください、あなたを助けるいくつかのコード例があります:http://elixir-lang.org/docs/stable/elixir/GenServer.html

関連する問題