Merge remote-tracking branch 'upstream/main' into main

This commit is contained in:
Fenny
2020-11-06 01:47:07 +01:00
3 changed files with 13 additions and 12 deletions

View File

@@ -48,7 +48,6 @@ store := mongodb.New(mongodb.Config{
Database: "fiber", Database: "fiber",
Collection: "fiber_storage", Collection: "fiber_storage",
Reset: false, Reset: false,
GCInterval: 10 * time.Second,
}) })
``` ```
@@ -89,11 +88,6 @@ type Config struct {
// //
// Optional. Default is false // Optional. Default is false
Reset bool Reset bool
// Time before deleting expired keys
//
// Optional. Default is 10 * time.Second
GCInterval time.Duration
} }
``` ```
@@ -105,6 +99,5 @@ var ConfigDefault = Config{
Database: "fiber", Database: "fiber",
Collection: "fiber_storage", Collection: "fiber_storage",
Reset: false, Reset: false,
GCInterval: 10 * time.Second,
} }
``` ```

View File

@@ -1,8 +1,6 @@
package mongodb package mongodb
import ( import "time"
"time"
)
// Config defines the config for storage. // Config defines the config for storage.
type Config struct { type Config struct {
@@ -54,7 +52,6 @@ var ConfigDefault = Config{
Database: "fiber", Database: "fiber",
Collection: "fiber_storage", Collection: "fiber_storage",
Reset: false, Reset: false,
GCInterval: 10 * time.Second,
} }
// Helper function to set default values // Helper function to set default values

View File

@@ -37,7 +37,7 @@ func New(config ...Config) *Storage {
cfg := configDefault(config...) cfg := configDefault(config...)
// Create data source name // Create data source name
var dsn string = "mongodb://" var dsn = "mongodb://"
if cfg.Username != "" { if cfg.Username != "" {
dsn += url.QueryEscape(cfg.Username) dsn += url.QueryEscape(cfg.Username)
} }
@@ -65,10 +65,21 @@ func New(config ...Config) *Storage {
panic(err) panic(err)
} }
// verify that the client can connect
if err = client.Ping(context.Background(), nil); err != nil {
panic(err)
}
// Get collection from database // Get collection from database
db := client.Database(cfg.Database) db := client.Database(cfg.Database)
col := db.Collection(cfg.Collection) col := db.Collection(cfg.Collection)
if cfg.Clear {
if err = col.Drop(context.Background()); err != nil {
panic(err)
}
}
// expired data may exist for some time beyond the 60 second period between runs of the background task. // expired data may exist for some time beyond the 60 second period between runs of the background task.
// more on https://docs.mongodb.com/manual/core/index-ttl/ // more on https://docs.mongodb.com/manual/core/index-ttl/
indexModel := mongo.IndexModel{ indexModel := mongo.IndexModel{