Current section

Files

Jump to
cloudi_service_map_reduce doc cloudi_service_map_reduce.html
Raw

doc/cloudi_service_map_reduce.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module cloudi_service_map_reduce</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="EDoc">
</head>
<body bgcolor="white">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
<hr>
<h1>Module cloudi_service_map_reduce</h1>
<ul class="index"><li><a href="#description">Description</a></li><li><a href="#types">Data Types</a></li><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>
<h3><a name="CloudI_(Abstract)_Map-Reduce_Service">CloudI (Abstract) Map-Reduce Service</a></h3>
This module provides an Erlang behaviour for fault-tolerant,
database agnostic map-reduce.
<p>Copyright © 2012-2021 Michael Truog</p>
<p><b>Version:</b> 2.0.2 May 27 2021 01:01:02
------------------------------------------------------------------------</p>
<p><b>Behaviours:</b> <a href="deps/cloudi_core/doc/cloudi_service.html"><tt>cloudi_service</tt></a>.</p>
<p><b>This module defines the <tt>cloudi_service_map_reduce</tt> behaviour.</b><br> Required callback functions: <tt>cloudi_service_map_reduce_new/5</tt>, <tt>cloudi_service_map_reduce_send/2</tt>, <tt>cloudi_service_map_reduce_resend/2</tt>, <tt>cloudi_service_map_reduce_recv/7</tt>, <tt>cloudi_service_map_reduce_info/3</tt>.</p>
<p><b>Authors:</b> Michael Truog (<a href="mailto:mjtruog at protonmail dot com"><tt>mjtruog at protonmail dot com</tt></a>).</p>
<h2><a name="description">Description</a></h2>
<h3><a name="CloudI_(Abstract)_Map-Reduce_Service">CloudI (Abstract) Map-Reduce Service</a></h3>
This module provides an Erlang behaviour for fault-tolerant,
database agnostic map-reduce. See the hexpi test for example usage.
<h2><a name="types">Data Types</a></h2>
<h3 class="typedecl"><a name="type-agent">agent()</a></h3>
<p><tt>agent() = <a href="deps/cloudi_core/doc/cloudi.html#type-agent">cloudi:agent()</a></tt></p>
<h3 class="typedecl"><a name="type-map_send_args">map_send_args()</a></h3>
<p><tt>map_send_args() = nonempty_list()</tt></p>
<h3 class="typedecl"><a name="type-module_response">module_response()</a></h3>
<p><tt>module_response(Result) = {{ok, Result}, AgentNew::<a href="#type-agent">agent()</a>} | {{error, <a href="deps/cloudi_core/doc/cloudi.html#type-error_reason">cloudi:error_reason()</a>}, AgentNew::<a href="#type-agent">agent()</a>}</tt></p>
<h3 class="typedecl"><a name="type-service_name">service_name()</a></h3>
<p><tt>service_name() = <a href="deps/cloudi_core/doc/cloudi.html#type-service_name">cloudi:service_name()</a></tt></p>
<h3 class="typedecl"><a name="type-timeout_milliseconds">timeout_milliseconds()</a></h3>
<p><tt>timeout_milliseconds() = <a href="deps/cloudi_core/doc/cloudi.html#type-timeout_milliseconds">cloudi:timeout_milliseconds()</a></tt></p>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="1" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#aspect_resume-1">aspect_resume/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#aspect_suspend-1">aspect_suspend/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#cloudi_service_handle_info-3">cloudi_service_handle_info/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#cloudi_service_handle_request-11">cloudi_service_handle_request/11</a></td><td></td></tr>
<tr><td valign="top"><a href="#cloudi_service_init-4">cloudi_service_init/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#cloudi_service_terminate-3">cloudi_service_terminate/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#resume-2">resume/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#resume-3">resume/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#suspend-2">suspend/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#suspend-3">suspend/3</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="aspect_resume-1">aspect_resume/1</a></h3>
<div class="spec">
<p><tt>aspect_resume(State::#state{service = pid(), map_reduce_module = module(), map_reduce_state = any(), map_reduce_name = string(), map_count = pos_integer(), log_execution_time = boolean(), retry = non_neg_integer(), retry_delay = non_neg_integer(), timeout_max = <a href="deps/cloudi_core/doc/cloudi_service.html#type-timeout_value_milliseconds">cloudi_service:timeout_value_milliseconds()</a>, map_requests = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #map_send{send_args = <a href="#type-map_send_args">map_send_args()</a>, retry_count = non_neg_integer()}}, time_running = <a href="deps/cloudi_core/doc/cloudi_timestamp.html#type-seconds_monotonic">cloudi_timestamp:seconds_monotonic()</a>, suspended = boolean(), elapsed_seconds = non_neg_integer()}) -&gt; {ok, #state{service = pid(), map_reduce_module = module(), map_reduce_state = any(), map_reduce_name = string(), map_count = pos_integer(), log_execution_time = boolean(), retry = non_neg_integer(), retry_delay = non_neg_integer(), timeout_max = <a href="deps/cloudi_core/doc/cloudi_service.html#type-timeout_value_milliseconds">cloudi_service:timeout_value_milliseconds()</a>, map_requests = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #map_send{send_args = <a href="#type-map_send_args">map_send_args()</a>, retry_count = non_neg_integer()}}, time_running = <a href="deps/cloudi_core/doc/cloudi_timestamp.html#type-seconds_monotonic">cloudi_timestamp:seconds_monotonic()</a>, suspended = boolean(), elapsed_seconds = non_neg_integer()}}</tt><br></p>
<p> </p>
</div>
<h3 class="function"><a name="aspect_suspend-1">aspect_suspend/1</a></h3>
<div class="spec">
<p><tt>aspect_suspend(State::#state{service = pid(), map_reduce_module = module(), map_reduce_state = any(), map_reduce_name = string(), map_count = pos_integer(), log_execution_time = boolean(), retry = non_neg_integer(), retry_delay = non_neg_integer(), timeout_max = <a href="deps/cloudi_core/doc/cloudi_service.html#type-timeout_value_milliseconds">cloudi_service:timeout_value_milliseconds()</a>, map_requests = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #map_send{send_args = <a href="#type-map_send_args">map_send_args()</a>, retry_count = non_neg_integer()}}, time_running = <a href="deps/cloudi_core/doc/cloudi_timestamp.html#type-seconds_monotonic">cloudi_timestamp:seconds_monotonic()</a>, suspended = boolean(), elapsed_seconds = non_neg_integer()}) -&gt; {ok, #state{service = pid(), map_reduce_module = module(), map_reduce_state = any(), map_reduce_name = string(), map_count = pos_integer(), log_execution_time = boolean(), retry = non_neg_integer(), retry_delay = non_neg_integer(), timeout_max = <a href="deps/cloudi_core/doc/cloudi_service.html#type-timeout_value_milliseconds">cloudi_service:timeout_value_milliseconds()</a>, map_requests = #{<a href="deps/cloudi_core/doc/cloudi_service.html#type-trans_id">cloudi_service:trans_id()</a> := #map_send{send_args = <a href="#type-map_send_args">map_send_args()</a>, retry_count = non_neg_integer()}}, time_running = <a href="deps/cloudi_core/doc/cloudi_timestamp.html#type-seconds_monotonic">cloudi_timestamp:seconds_monotonic()</a>, suspended = boolean(), elapsed_seconds = non_neg_integer()}}</tt><br></p>
<p> </p>
</div>
<h3 class="function"><a name="cloudi_service_handle_info-3">cloudi_service_handle_info/3</a></h3>
<div class="spec">
<p><tt>cloudi_service_handle_info(Init_begin, Init_state, Dispatcher) -&gt; any()</tt></p>
<p> </p>
</div>
<h3 class="function"><a name="cloudi_service_handle_request-11">cloudi_service_handle_request/11</a></h3>
<div class="spec">
<p><tt>cloudi_service_handle_request(RequestType, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -&gt; any()</tt></p>
<p> </p>
</div>
<h3 class="function"><a name="cloudi_service_init-4">cloudi_service_init/4</a></h3>
<div class="spec">
<p><tt>cloudi_service_init(Args, Prefix, Timeout, Dispatcher) -&gt; any()</tt></p>
<p> </p>
</div>
<h3 class="function"><a name="cloudi_service_terminate-3">cloudi_service_terminate/3</a></h3>
<div class="spec">
<p><tt>cloudi_service_terminate(Reason, Timeout, State) -&gt; any()</tt></p>
<p> </p>
</div>
<h3 class="function"><a name="resume-2">resume/2</a></h3>
<div class="spec">
<p><tt>resume(Agent::<a href="#type-agent">agent()</a>, Prefix::<a href="#type-service_name">service_name()</a>) -&gt; <a href="#type-module_response">module_response</a>(ok | {error, any()})</tt><br></p>
<p> </p>
</div>
<h3 class="function"><a name="resume-3">resume/3</a></h3>
<div class="spec">
<p><tt>resume(Agent::<a href="#type-agent">agent()</a>, Prefix::<a href="#type-service_name">service_name()</a>, Timeout::<a href="#type-timeout_milliseconds">timeout_milliseconds()</a>) -&gt; <a href="#type-module_response">module_response</a>(ok | {error, any()})</tt><br></p>
<p> </p>
</div>
<h3 class="function"><a name="suspend-2">suspend/2</a></h3>
<div class="spec">
<p><tt>suspend(Agent::<a href="#type-agent">agent()</a>, Prefix::<a href="#type-service_name">service_name()</a>) -&gt; <a href="#type-module_response">module_response</a>(ok | {error, any()})</tt><br></p>
<p> </p>
</div>
<h3 class="function"><a name="suspend-3">suspend/3</a></h3>
<div class="spec">
<p><tt>suspend(Agent::<a href="#type-agent">agent()</a>, Prefix::<a href="#type-service_name">service_name()</a>, Timeout::<a href="#type-timeout_milliseconds">timeout_milliseconds()</a>) -&gt; <a href="#type-module_response">module_response</a>(ok | {error, any()})</tt><br></p>
<p> </p>
</div>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.erlang.org/"><img src="erlang.png" align="right" border="0" alt="erlang logo"></a></td></tr></table></div>
<p><i>Generated by EDoc</i></p>
</body>
</html>