File tree 4 files changed +88
-8
lines changed
4 files changed +88
-8
lines changed Original file line number Diff line number Diff line change 5
5
"io/ioutil"
6
6
"log"
7
7
"net/http"
8
+ "os"
9
+ "strconv"
8
10
"time"
9
11
10
12
"handler/function"
@@ -57,11 +59,29 @@ func makeRequestHandler() func(http.ResponseWriter, *http.Request) {
57
59
}
58
60
}
59
61
62
+ func parseIntOrDurationValue (val string , fallback time.Duration ) time.Duration {
63
+ if len (val ) > 0 {
64
+ parsedVal , parseErr := strconv .Atoi (val )
65
+ if parseErr == nil && parsedVal >= 0 {
66
+ return time .Duration (parsedVal ) * time .Second
67
+ }
68
+ }
69
+
70
+ duration , durationErr := time .ParseDuration (val )
71
+ if durationErr != nil {
72
+ return fallback
73
+ }
74
+ return duration
75
+ }
76
+
60
77
func main () {
78
+ readTimeout := parseIntOrDurationValue (os .Getenv ("read_timeout" ), 10 * time .Second )
79
+ writeTimeout := parseIntOrDurationValue (os .Getenv ("write_timeout" ), 10 * time .Second )
80
+
61
81
s := & http.Server {
62
82
Addr : fmt .Sprintf (":%d" , 8082 ),
63
- ReadTimeout : 3 * time . Second ,
64
- WriteTimeout : 3 * time . Second ,
83
+ ReadTimeout : readTimeout ,
84
+ WriteTimeout : writeTimeout ,
65
85
MaxHeaderBytes : 1 << 20 , // Max header of 1MB
66
86
}
67
87
Original file line number Diff line number Diff line change 5
5
"io/ioutil"
6
6
"log"
7
7
"net/http"
8
+ "os"
9
+ "strconv"
8
10
"time"
9
11
10
12
"handler/function"
@@ -57,11 +59,29 @@ func makeRequestHandler() func(http.ResponseWriter, *http.Request) {
57
59
}
58
60
}
59
61
62
+ func parseIntOrDurationValue (val string , fallback time.Duration ) time.Duration {
63
+ if len (val ) > 0 {
64
+ parsedVal , parseErr := strconv .Atoi (val )
65
+ if parseErr == nil && parsedVal >= 0 {
66
+ return time .Duration (parsedVal ) * time .Second
67
+ }
68
+ }
69
+
70
+ duration , durationErr := time .ParseDuration (val )
71
+ if durationErr != nil {
72
+ return fallback
73
+ }
74
+ return duration
75
+ }
76
+
60
77
func main () {
78
+ readTimeout := parseIntOrDurationValue (os .Getenv ("read_timeout" ), 10 * time .Second )
79
+ writeTimeout := parseIntOrDurationValue (os .Getenv ("write_timeout" ), 10 * time .Second )
80
+
61
81
s := & http.Server {
62
82
Addr : fmt .Sprintf (":%d" , 8082 ),
63
- ReadTimeout : 3 * time . Second ,
64
- WriteTimeout : 3 * time . Second ,
83
+ ReadTimeout : readTimeout ,
84
+ WriteTimeout : writeTimeout ,
65
85
MaxHeaderBytes : 1 << 20 , // Max header of 1MB
66
86
}
67
87
Original file line number Diff line number Diff line change @@ -4,17 +4,37 @@ import (
4
4
"fmt"
5
5
"log"
6
6
"net/http"
7
+ "os"
8
+ "strconv"
7
9
"time"
8
10
9
11
"handler/function"
10
12
//"github.com/openfaas-incubator/golang-http-template/template/golang-middleware/function"
11
13
)
12
14
15
+ func parseIntOrDurationValue (val string , fallback time.Duration ) time.Duration {
16
+ if len (val ) > 0 {
17
+ parsedVal , parseErr := strconv .Atoi (val )
18
+ if parseErr == nil && parsedVal >= 0 {
19
+ return time .Duration (parsedVal ) * time .Second
20
+ }
21
+ }
22
+
23
+ duration , durationErr := time .ParseDuration (val )
24
+ if durationErr != nil {
25
+ return fallback
26
+ }
27
+ return duration
28
+ }
29
+
13
30
func main () {
31
+ readTimeout := parseIntOrDurationValue (os .Getenv ("read_timeout" ), 10 * time .Second )
32
+ writeTimeout := parseIntOrDurationValue (os .Getenv ("write_timeout" ), 10 * time .Second )
33
+
14
34
s := & http.Server {
15
35
Addr : fmt .Sprintf (":%d" , 8082 ),
16
- ReadTimeout : 3 * time . Second ,
17
- WriteTimeout : 3 * time . Second ,
36
+ ReadTimeout : readTimeout ,
37
+ WriteTimeout : writeTimeout ,
18
38
MaxHeaderBytes : 1 << 20 , // Max header of 1MB
19
39
}
20
40
Original file line number Diff line number Diff line change @@ -4,17 +4,37 @@ import (
4
4
"fmt"
5
5
"log"
6
6
"net/http"
7
+ "os"
8
+ "strconv"
7
9
"time"
8
10
9
11
"handler/function"
10
12
//"github.com/openfaas-incubator/golang-http-template/template/golang-middleware/function"
11
13
)
12
14
15
+ func parseIntOrDurationValue (val string , fallback time.Duration ) time.Duration {
16
+ if len (val ) > 0 {
17
+ parsedVal , parseErr := strconv .Atoi (val )
18
+ if parseErr == nil && parsedVal >= 0 {
19
+ return time .Duration (parsedVal ) * time .Second
20
+ }
21
+ }
22
+
23
+ duration , durationErr := time .ParseDuration (val )
24
+ if durationErr != nil {
25
+ return fallback
26
+ }
27
+ return duration
28
+ }
29
+
13
30
func main () {
31
+ readTimeout := parseIntOrDurationValue (os .Getenv ("read_timeout" ), 10 * time .Second )
32
+ writeTimeout := parseIntOrDurationValue (os .Getenv ("write_timeout" ), 10 * time .Second )
33
+
14
34
s := & http.Server {
15
35
Addr : fmt .Sprintf (":%d" , 8082 ),
16
- ReadTimeout : 3 * time . Second ,
17
- WriteTimeout : 3 * time . Second ,
36
+ ReadTimeout : readTimeout ,
37
+ WriteTimeout : writeTimeout ,
18
38
MaxHeaderBytes : 1 << 20 , // Max header of 1MB
19
39
}
20
40
You can’t perform that action at this time.
0 commit comments