Skip to content

Instantly share code, notes, and snippets.

@loxs
Created September 27, 2012 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save loxs/3793738 to your computer and use it in GitHub Desktop.
Save loxs/3793738 to your computer and use it in GitHub Desktop.
riakc_action
-spec riakc_action(Action::put|get|delete|get_index|mapred|search, RiakcArgs::list()) -> term().
riakc_action(Action, RiakcArgs) ->
riakc_action(Action, RiakcArgs, 0).
riakc_action(_Action, _RiakcArgs, Tries) when Tries > 16 ->
{error, disconnected};
riakc_action(Action, RiakcArgs, Tries) ->
RiakcPid = poolboy:checkout(wsdb_riakc_pool),
try apply(riakc_pb_socket, Action, [RiakcPid|RiakcArgs]) of
{error, disconnected} ->
riakc_action(Action, RiakcArgs, Tries+1);
R ->
R
catch
TypeOfError:ExceptionPattern ->
lager:error("error in riakc_action ~p ~p", [TypeOfError, ExceptionPattern]),
{error, TypeOfError, ExceptionPattern}
after
poolboy:checkin(wsdb_riakc_pool, RiakcPid)
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment