can set request timeout

This commit is contained in:
xjasonlyu committed 2022-07-16 13:11:08 +08:00
1 parent 6ecf92682d
commit 98a0b676cb
2 files changed
+12 -2

No files matched your search

+1
View File
@@ -17,6 +17,7 @@ ENV GIN_MODE=release
ENV PORT=8080
ENV TOKEN=""
ENV DSN=""
ENV REQUEST_TIMEOUT=""
ENV DB_MAX_IDLE_CONNS=0
ENV DB_MAX_OPEN_CONNS=0
ENV DB_PREPARED_STMT=0
+11 -2
View File
@@ -19,7 +19,7 @@ import (
"github.com/javtube/javtube-sdk-go/route/auth"
)
const defaultRequestTimeout = 2 * time.Minute
const defaultRequestTimeout = time.Minute
var (
opts = new(options)
@@ -33,6 +33,9 @@ type options struct {
token string
dsn string
// engine options
requestTimeout time.Duration
// database options
dbMaxIdleConns int
dbMaxOpenConns int
@@ -52,6 +55,7 @@ func init() {
flag.StringVar(&opts.port, "port", "8080", "Port number of server")
flag.StringVar(&opts.token, "token", "", "Token to access server")
flag.StringVar(&opts.dsn, "dsn", "", "Database Service Name")
flag.DurationVar(&opts.requestTimeout, "request-timeout", time.Minute, "Timeout per request")
flag.IntVar(&opts.dbMaxIdleConns, "db-max-idle-conns", 0, "Database max idle connections")
flag.IntVar(&opts.dbMaxOpenConns, "db-max-open-conns", 0, "Database max open connections")
flag.BoolVar(&opts.dbAutoMigrate, "db-auto-migrate", false, "Database auto migration")
@@ -87,7 +91,12 @@ func main() {
opts.dbAutoMigrate = true
}
app := engine.New(db, defaultRequestTimeout)
// timeout must >= 1 second.
if opts.requestTimeout < time.Second {
opts.requestTimeout = defaultRequestTimeout
}
app := engine.New(db, opts.requestTimeout)
if err = app.AutoMigrate(opts.dbAutoMigrate); err != nil {
log.Fatal(err)
}