Module cloudi_service_map_reduce

CloudI (Abstract) Map-Reduce Service

This module provides an Erlang behaviour for fault-tolerant, database agnostic map-reduce.

Copyright © 2012-2021 Michael Truog

Version: 2.0.2 May 27 2021 01:01:02 ------------------------------------------------------------------------

Behaviours: cloudi_service.

This module defines the cloudi_service_map_reduce behaviour.
Required callback functions: cloudi_service_map_reduce_new/5, cloudi_service_map_reduce_send/2, cloudi_service_map_reduce_resend/2, cloudi_service_map_reduce_recv/7, cloudi_service_map_reduce_info/3.

Authors: Michael Truog (mjtruog at protonmail dot com).

Description

CloudI (Abstract) Map-Reduce Service

This module provides an Erlang behaviour for fault-tolerant, database agnostic map-reduce. See the hexpi test for example usage.

Data Types

agent()

agent() = cloudi:agent()

map_send_args()

map_send_args() = nonempty_list()

module_response()

module_response(Result) = {{ok, Result}, AgentNew::agent()} | {{error, cloudi:error_reason()}, AgentNew::agent()}

service_name()

service_name() = cloudi:service_name()

timeout_milliseconds()

timeout_milliseconds() = cloudi:timeout_milliseconds()

Function Index

aspect_resume/1
aspect_suspend/1
cloudi_service_handle_info/3
cloudi_service_handle_request/11
cloudi_service_init/4
cloudi_service_terminate/3
resume/2
resume/3
suspend/2
suspend/3

Function Details

aspect_resume/1

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 = cloudi_service:timeout_value_milliseconds(), map_requests = #{cloudi_service:trans_id() := #map_send{send_args = map_send_args(), retry_count = non_neg_integer()}}, time_running = cloudi_timestamp:seconds_monotonic(), suspended = boolean(), elapsed_seconds = non_neg_integer()}) -> {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 = cloudi_service:timeout_value_milliseconds(), map_requests = #{cloudi_service:trans_id() := #map_send{send_args = map_send_args(), retry_count = non_neg_integer()}}, time_running = cloudi_timestamp:seconds_monotonic(), suspended = boolean(), elapsed_seconds = non_neg_integer()}}

aspect_suspend/1

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 = cloudi_service:timeout_value_milliseconds(), map_requests = #{cloudi_service:trans_id() := #map_send{send_args = map_send_args(), retry_count = non_neg_integer()}}, time_running = cloudi_timestamp:seconds_monotonic(), suspended = boolean(), elapsed_seconds = non_neg_integer()}) -> {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 = cloudi_service:timeout_value_milliseconds(), map_requests = #{cloudi_service:trans_id() := #map_send{send_args = map_send_args(), retry_count = non_neg_integer()}}, time_running = cloudi_timestamp:seconds_monotonic(), suspended = boolean(), elapsed_seconds = non_neg_integer()}}

cloudi_service_handle_info/3

cloudi_service_handle_info(Init_begin, Init_state, Dispatcher) -> any()

cloudi_service_handle_request/11

cloudi_service_handle_request(RequestType, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -> any()

cloudi_service_init/4

cloudi_service_init(Args, Prefix, Timeout, Dispatcher) -> any()

cloudi_service_terminate/3

cloudi_service_terminate(Reason, Timeout, State) -> any()

resume/2

resume(Agent::agent(), Prefix::service_name()) -> module_response(ok | {error, any()})

resume/3

resume(Agent::agent(), Prefix::service_name(), Timeout::timeout_milliseconds()) -> module_response(ok | {error, any()})

suspend/2

suspend(Agent::agent(), Prefix::service_name()) -> module_response(ok | {error, any()})

suspend/3

suspend(Agent::agent(), Prefix::service_name(), Timeout::timeout_milliseconds()) -> module_response(ok | {error, any()})


Generated by EDoc