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.

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

Link to this function

arguments(instructions, config)

View Source
@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

Link to this function

call_this(arguments \\ [])

View Source
@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.

Link to this function

modify_relup(instructions, config)

View Source

Callback implementation for Edeliver.Relup.Instruction.modify_relup/2.

Link to this function

run(otp_application_name)

View Source
@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.