3

窒素を使ったウェブアプリを始めたばかりで、すべてうまくいっています。しかし、私が設定した riak db とアプリを連携させたいのですが、問題が発生しています。

窒素の私のコードがそれにアクセスできるように、どのように erlang クライアント インターフェイスを「含める」かについて混乱しています。

(https://wiki.basho.com/display/RIAK/Erlang+Client+PBC)

私はerlangと窒素を初めて使用しますが、一般的に、erlangの場合、参照として他のライブラリを含めるにはどうすればよいですか? コンパイルされたビーム ファイルをどこかに投げて、erlang コードの先頭に -include 行を追加するだけですか? もしそうなら、窒素のためにこれらのファイルをどこに投げますか(それは私が思うに独自の個別のerlangノードインスタンスを持っています)

4

2 に答える 2

3

すべてを1つのノードで実行する場合は、必要なものを呼び出すだけです。ノードがErlang/OPTリリース処理のルールでビルドされている場合、必要なすべてのライブラリがVMにロードされていることを意味します。

-includeは、レコード定義やマクロなどのヘッダーファイルをインクルードするために使用されます。

鉄筋(芭蕉によるビルドシステム)はそれをかなりうまく処理するので、それはすべてあなたにとって透明でなければなりません。

一部のlibを使用するには、適切な鉄筋構成(depsセクション)の結果として、それがdepsディレクトリにあることを確認してください。次に、ノードを構成するrel / filesのsystools.configを変更します(実行中のシステムに含まれるようにdeps /からアプリを取得します)。

そしてそれがすべてです。

于 2010-11-19T13:21:27.107 に答える
0

これは簡単な手順です。

  1. Basho のパッチを適用したバージョンの Erlang を使用してください。そのための手順は、Installing Basho Erlang/OTPにあります。

  2. その後、 Creating a Nitrogen projectの指示に従ってスリム バージョンをインストールします。芭蕉の Erlang を使用してプロジェクトをビルドするように、「スリム リリース」バージョンを使用してください。

  3. github から riak-erlang-client をプルします。詳細については、こちらを確認するか、../$MYPROJECT/lib ディレクトリからこれを実行してください。ここで、$MYPROJECT は窒素プロジェクト名です。git clone git://github.com/basho/riak-erlang-client.git. これにより、 libディレクトリに riak-erlang-client が含まれます

  4. これを実行して rebar.config ファイルを編集しnano ../$MYPROJECT/rebar.config、riak-erlang-client の依存関係を含めます。** 以下のコード ブロックで riakc dep を探します **、このプロジェクトでは私が使用しましたmake slim_cowboy

{深さ、[

  {cowboy,        ".*",   {git, "git://github.com/ninenines/cowboy",         {tag,     "1.0.0"}}},
%% Uncomment the following lines and comment the bottom lines with specific
%% tags to always pull the latest versions
{simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{branch, master}}},
{nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {branch, master}}},
{nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{branch, master}}},

%% The riak-erlang-client dep starts
{riakc,         "1.4.1",    {git, "git://github.com/basho/riak-erlang-client", {tag, "1.4.1"}}},
%% The riak-erlang-client dep ends

{sync,          ".*",   {git, "git://github.com/rustyio/sync",          {branch, master}}}

%% Get specific tagged version
%{simple_bridge, ".*",   {git, "git://github.com/nitrogen/simple_bridge",{tag, "v2.0.0-beta5"}}},
%{nprocreg,      ".*",   {git, "git://github.com/nitrogen/nprocreg",     {tag, "v0.2.1"}}},
%{nitrogen_core, ".*",   {git, "git://github.com/nitrogen/nitrogen_core",{tag, "v2.3.0-beta6"}}},
%{sync,          ".*",   {git, "git://github.com/rustyio/sync",          {tag, "4dbe32bb4"}}}

]}。

  1. ../$MYPROJECT から、 を使用してプロジェクトを再コンパイルしますmake all

  2. このステップの最後に、 で窒素を開始し./bin/nitrogen consoleます。次の方法で riak ノードの 1 つに接続してみてください{ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", <PORT>).

于 2014-12-21T01:28:38.707 に答える