edeliver_fork v1.4.5 Edeliver.Relup.Instructions.RerunFailedRequests

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.

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

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

Functions

arguments(instructions, config)

Specs

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

call_this(arguments \\ [])

Specs

call_this(arguments :: [term]) ::
  Instruction.instruction |
  Instruction.instructions

Calls the run/1 function of this module

from the relup file during hot code upgrade

dependencies()

Specs

dependencies :: [instruction_module :: atom]
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.

insert_where()

Specs

insert_where :: Instruction.insert_fun
modify_relup(instructions, config)
run(otp_application_name)

Specs

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.