class Client
Represents a client that can send messages to the parent controller in order to notify it of readiness, status changes, etc.
A process readiness protocol (e.g. sd_notify
) is a simple protocol for a child process to notify the parent process that it is ready (e.g. to accept connections, to process requests, etc). This can help dependency-based startup systems to start services in the correct order, and to handle failures gracefully.
Definitions
def ready!(**message)
Notify the parent controller that the child has become ready, with a brief status message.
Implementation
def ready!(**message)
send(ready: true, **message)
end
def reloading!(**message)
Notify the parent controller that the child is reloading.
Implementation
def reloading!(**message)
message[:ready] = false
message[:reloading] = true
message[:status] ||= "Reloading..."
send(**message)
end
def restarting!(**message)
Notify the parent controller that the child is restarting.
Implementation
def restarting!(**message)
message[:ready] = false
message[:reloading] = true
message[:status] ||= "Restarting..."
send(**message)
end
def stopping!(**message)
Notify the parent controller that the child is stopping.
Implementation
def stopping!(**message)
message[:stopping] = true
send(**message)
end
def status!(text)
Notify the parent controller of a status change.
Implementation
def status!(text)
send(status: text)
end
def error!(text, **message)
Notify the parent controller of an error condition.
Implementation
def error!(text, **message)
send(status: text, **message)
end