The sample HTTP application implements the correct shutdown behavior for an HTTP application deployed to Cloud Foundry. It adheres to the following contract when shutting down:
App receives termination signal
App closes listener so that it stops accepting new connections
App finishes serving in-flight requests
App closes existing connections as their requests complete
Sample HTTP Application
The sample HTTP application implements the correct shutdown behavior for an HTTP application deployed to Cloud Foundry. It adheres to the following contract when shutting down:
This application implements the connection management itself in main.go, but similar logic can be found in the Shutdown method of the Golang HTTP server.
Configure
The app is configurable by setting the following environment variables:
PORT: The port on which the HTTP server will be listening. It defaults to8080.Response Latency
The response latency can be controlled by setting the query parameter
waitto any string parseable by time.ParseDuration. The default value is10 µs.Deploy to Cloud Foundry
Simply run
cf pushfrom the app root directory and it should deploy successfully.Run Locally
To run locally, follow the steps below:
To run the tests, first get the dependencies using
go get -t ./... && go get github.com/onsi/ginkgo/ginkgothen runginkgoin the app root directory.