1

次のErlangコードがあります:

#!/usr/bin/env escript
%%! -pz ../deps/amqp_client ../deps/rabbit_common ../deps/amqp_client/ebin ../deps/rabbit_common/ebin

% RMQ module
-module(rmq).
-export([main/1, send/1, validate/0, test/0]).
-include_lib("../deps/amqp_client/include/amqp_client.hrl").

main(_) ->
    %send(<<"test_esio">>),
    %validate(),
    Pid = spawn(rmq, test, []),
    % Pid = spawn(fun() -> test() end), <= I've tried this way too
    Pid ! s.

test() ->
    receive
        s ->
            io:format("BAR ~n"),
            send(<<"esio">>),
            test();
        get ->
            validate(),
            test();
        _ ->
            io:format("FOO"),
            test()
    end.

私はこれを実行します: excript rmq.erl

このコードは機能しません。スポーンがうまくいかないようです。

メインから実行すると、コードの残りの部分が機能し、関数 send と validate が正しく機能します (コメントしました)。私が間違っていることは何ですか?

すみません、ばかげた質問かもしれませんが、私はerlangの初心者です。インターネットや本で検索回答を試してみましたが、失敗しました...

4

1 に答える 1