patroni.postgresql.callback_executor module

class patroni.postgresql.callback_executor.CallbackAction

Bases: str, enum.Enum

An enumeration.

NOOP = 'noop'
ON_RELOAD = 'on_reload'
ON_RESTART = 'on_restart'
ON_ROLE_CHANGE = 'on_role_change'
ON_START = 'on_start'
ON_STOP = 'on_stop'
class patroni.postgresql.callback_executor.CallbackExecutor

Bases: patroni.postgresql.cancellable.CancellableExecutor, threading.Thread

call(cmd: List[str]) → None

Executes one callback at a time.

Already running command is killed (including child processes). If it couldn’t be killed we wait until it finishes.

Parameters:cmd – command to be executed
run() → None

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

class patroni.postgresql.callback_executor.OnReloadExecutor

Bases: patroni.postgresql.cancellable.CancellableSubprocess

call_nowait(cmd: List[str]) → None

Run one on_reload callback at most.

To achieve it we always kill already running command including child processes.