You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							1.4 KiB
						
					
					
				| httpdown [](https://travis-ci.org/facebookgo/httpdown)
 | |
| ========
 | |
| 
 | |
| Documentation: https://godoc.org/github.com/facebookgo/httpdown
 | |
| 
 | |
| Package httpdown provides a library that makes it easy to build a HTTP server
 | |
| that can be shutdown gracefully (that is, without dropping any connections).
 | |
| 
 | |
| If you want graceful restart and not just graceful shutdown, look at the
 | |
| [grace](https://github.com/facebookgo/grace) package which uses this package
 | |
| underneath but also provides graceful restart.
 | |
| 
 | |
| Usage
 | |
| -----
 | |
| 
 | |
| Demo HTTP Server with graceful termination:
 | |
| https://github.com/facebookgo/httpdown/blob/master/httpdown_example/main.go
 | |
| 
 | |
| 1. Install the demo application
 | |
| 
 | |
|         go get github.com/facebookgo/httpdown/httpdown_example
 | |
| 
 | |
| 1. Start it in the first terminal
 | |
| 
 | |
|         httpdown_example
 | |
| 
 | |
|    This will output something like:
 | |
| 
 | |
|         2014/11/18 21:57:50 serving on http://127.0.0.1:8080/ with pid 17
 | |
| 
 | |
| 1. In a second terminal start a slow HTTP request
 | |
| 
 | |
|         curl 'http://localhost:8080/?duration=20s'
 | |
| 
 | |
| 1. In a third terminal trigger a graceful shutdown (using the pid from your output):
 | |
| 
 | |
|         kill -TERM 17
 | |
| 
 | |
| This will demonstrate that the slow request was served before the server was
 | |
| shutdown. You could also have used `Ctrl-C` instead of `kill` as the example
 | |
| application triggers graceful shutdown on TERM or INT signals.
 | |
| 
 |