View Source Edeliver.Relup.Instructions.RerunFailedRequests (edeliver v1.9.2)
Runs phoenix requests again which failed during hot code upgrade.
This upgrade instruction notifies request processes
which were handling requests while new code was loaded
that they can be rerun if they failed during the upgrade.
It is required that a phoenix
version is used
which supports the upgrade notification feature.
This instruction should be used in conjunction with and
after the
Edeliver.Relup.Instructions.FinishRunningRequests
instruction which notifies the request processes that the code upgrade is started.
To make sure that the http request connections can be found on the node, use this instruction after the
Edeliver.Relup.Instructions.CheckRanchConnections
instruction which will abort the upgrade if the http request connections accepted by ranch cannot be found in the supervision tree.
Link to this section Summary
Functions
Returns name of the application. This name is taken as argument
for the run/1
function and is required to access the acceptor processes
through the supervision tree
Calls the run/1
function of this module
This module depends on the Edeliver.Relup.Instructions.CheckRanchAcceptors
,
the Edeliver.Relup.Instructions.CheckRanchConnections
and the
Edeliver.Relup.Instructions.FinishRunningRequests
module which must be loaded
before this instruction for upgrades and unload after this instruction for downgrades.
Callback implementation for Edeliver.Relup.RunnableInstruction.insert_where/0
.
Callback implementation for Edeliver.Relup.Instruction.modify_relup/2
.
Notifies request processes which handled http requests during the release upgrade / downgrade that the code loading is finished and that requests that failed during the code loading can be now rerun with the updated code.
Link to this section Functions
@spec arguments( %Edeliver.Relup.Instructions{ changed_modules: term(), down_instructions: term(), down_version: term(), up_instructions: term(), up_version: term() }, Edeliver.Relup.Config.t() ) :: term()
Returns name of the application. This name is taken as argument
for the run/1
function and is required to access the acceptor processes
through the supervision tree
@spec call_this(arguments :: [term()]) :: Instruction.instruction() | Instruction.instructions()
Calls the run/1
function of this module
from the relup file during hot code upgrade
@spec dependencies() :: [instruction_module :: atom()]
@spec dependencies() :: [Edeliver.Relup.Instructions.CheckRanchAcceptors]
This module depends on the Edeliver.Relup.Instructions.CheckRanchAcceptors
,
the Edeliver.Relup.Instructions.CheckRanchConnections
and the
Edeliver.Relup.Instructions.FinishRunningRequests
module which must be loaded
before this instruction for upgrades and unload after this instruction for downgrades.
@spec insert_where() :: Instruction.insert_fun()
Callback implementation for Edeliver.Relup.RunnableInstruction.insert_where/0
.
Callback implementation for Edeliver.Relup.Instruction.modify_relup/2
.
@spec run(otp_application_name :: atom()) :: :ok
Notifies request processes which handled http requests during the release upgrade / downgrade that the code loading is finished and that requests that failed during the code loading can be now rerun with the updated code.