On Thu, Jul 12, 2012 at 11:10 PM, 郎咸武 <langxian...@gmail.com> wrote:
> But myself function is can not work(Inputs = {modfun, trend_riak, test,
> [<<"a">>, <<"b">>]}). The "trend_riak" module is added riak path.
> There are errors in the following:
> {error,<<"Error sending inputs: [{<<\"my\">>,<<\"bu\">>}]">>}
>
> The trend_riak module code.
>   1 -module(trend_riak).
>   2
>   3 -export([test/3]).
>  4  [{<<"my">>, <<"bu">>}].
>
> Where is wrong?

Hi, Jason. The "modfun" input type is not widely used outside of Riak,
so its documentation has not spread to most client libraries. A
description of it is available in riak_kv:

https://github.com/basho/riak_kv/blob/master/src/riak_kv_mrc_pipe.erl#L39-60

A module implementing that interface looks like this:

    -module(trend_riak).

    -export([test/3]).

    test(Pipe, _Arg, _Timeout) ->
        Inputs = [{<<"my">>, <<"bu">>}],
        [ ok = riak_pipe:queue_work(Pipe, Input) || Input <- Inputs ],
        riak_pipe:eoi(Pipe).

And an example usage is:

    riakc_pb_socket:mapred(S,
                           {modfun, trend_riak, test, whatever},
                           [{map, {modfun, riak_kv_mapreduce,
map_object_value}, none, true}]).

Hope that helps,
Bryan

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to