gen-server

    4

    2答えて

    私はgen_server_dbと呼ぶgen_serverを書いています。 (gen_server_db:init()内の)データベースサーバを見つけようとしているときに、使用しているライブラリ(emysql)が接続に失敗する可能性があります。私は例外をキャッチし、コンソールに何かを印刷しようとすると、私はzipを取得します。以下のコードサンプルでは、​​io:形式のメッセージのいずれも、コンソール

    1

    1答えて

    私は与えられた状態でgen_serverを起動できるかどうかを調べようとしています。 このサーバーがクラッシュしたときに、最後の有効な状態でサーバーを再起動するモニター/スーパバイザをセットアップできます。 この問題にどのように対処するかについてのご意見は非常に歓迎されます。 これまでのところ、私の唯一のアイデアが呼び出されたときに所望の状態にサーバの状態を変更する特別なhandle_call/3

    2

    1答えて

    私はerlang:monitor/2を使用してgen_serverを監視しようとしています。残念なことに、これを試すたびにErlangシェルは無限ループに入ります。 これをテストするために書いたテストプログラムはここにあります。 -module(testmon). -compile(export_all). start() -> {ok,Proc} = gen_server:st

    9

    1答えて

    私は上司の行動を理解するために簡単な例を作成しようとしている、OTPに非常に新しいです:ここで は、単純なインクリメントサーバ -module(inc_serv). -behaviour(gen_server). -export([ start/0, inc/1, stop/0 ]). -export([ init/1, handle_call/3, terminate/2 ]). st

    2

    2答えて

    gen_serverでhandle_call機能は次のとおりです。 Module:handle_call(Request, From, State) -> Result しかし、私はこのようなものhandle_call機能満たす:私は何が起こったのか知りたい handle_call(info, _From, #yuv{decoder = undefined} = State) ->

    1

    1答えて

    私はetsテーブルを状態として保持したいgen_serverを書いています。その後、etsテーブルが他の場所に作成されました。これをgen_serverの状態にどのように追加すればよいですか? メモリを節約したいので、新しい辞書を作成するのではなく、etsテーブルを使用したいと考えています。 また、どのようにetsテーブルを反復処理しますか?テーブル内の各値を繰り返したり、値を確認したりしたいので

    5

    1答えて

    TLDR:TCPサーバに自動的に再接続するための再利用可能なコードが存在することがあります。 私は、サーバーアプリケーションを書いている - halそれを呼び出す - その中でxbmc - また、他のサーバーにいくつかのTCP接続をオープンしています。私はもともと、xbmcが失敗したときにxbmc erlangプロセスが停止し、そのスーパーバイザによって再起動されるように書きました。 明らかに、こ

    2

    1答えて

    (アプリケーションによって開始され、それ自体)監督からgen_server年代を起動すると、私はgen_serverのstart_linkが{ok, ...}が、{error, Reason}を返さないとき、私は見るだけで、エラーメッセージがあるという問題があります。 =INFO REPORT==== 20-Jan-2011::13:14:43 === application: foo

    2

    1答えて

    gen_serverのステータスはリストであり、X秒ごとに1回処理する必要があります。したがって、handle_call({process}、State)をX秒ごとに実行する必要があります。 X秒ごとにhandle_callを実行する最良の方法は何ですか?

    0

    1答えて

    私は、動作gen_serverを持つerlangモジュールを持っています。 は今、私が持っている: init(_Args) -> erlang:send_after(?PROCESS_STATE_INTERVAL,self(),processState), {ok, []}. と handle_info(processState, _State)-> {ok, N