Components¶
-
class
hermes.components.
Component
(notification_pipe, error_strategy, error_queue, backoff_limit=16)¶ Bases:
hermes.log.LoggerMixin
,multiprocessing.process.Process
A class which can be used to create both listener and processor objects. Callers must implement
execute()
and can others if they so choose.The structure of calls:
+-----------------+ | set_up | <--------------+ +-----------------+ | + | | | | | ERROR V | +-----------------------+ | | pre_execute | | | execute | +----------+ | post_execute | +-----------------------+ + | | V +-----------------------+ | tear_down | +-----------------------+
The Component class adds a foundation for you to build a fully-fledged processor or listener. You can add/modify as much as you like - sensitive methods have been identified.
Parameters: - notification_pipe – The
Pipe
-like object to performselect()
on. - error_strategy – An object of type
AbstractErrorStrategy
to handle exceptions. - error_queue – A
Queue
-like object to inform theClient
through. - backoff_limit – The maximum number of seconds to backoff a Component until it resets.
-
execute
(pre_exec_value)¶ Must be overridden by callers. The return value will be passed to
post_execute()
Parameters: pre_exec_value – The value returned by pre_execute()
-
ident
¶ Returns: ident()
unless the Component has not been started and returns None.
-
is_alive
()¶ Returns: is_alive()
unless the Component has not been started and returns False.
-
join
(**kwargs)¶ Returns: join()
unless the Component has not been started and returns immediately.
-
post_execute
(exec_value)¶ Can be safely overridden by callers.
Parameters: exec_value – The value returned by execute()
-
run
()¶ The main Component loop.
Callers should take great care when overriding.
-
set_up
()¶ Called before execute methods and only once per iteration.
Overridden methods should call super.
-
start
()¶ Initialises the process, sets it to daemonic and starts.
-
tear_down
()¶ Called after execute methods and only once per iteration.
Can be used to tear down any resources.
- notification_pipe – The