From 20fa5b9a00d83fc8250e0fd0d7bcc20924ffb8da Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Mon, 23 Sep 2019 16:54:04 -0700 Subject: [PATCH] add feature flag for experimental batcher --- cmd/drone-server/config/config.go | 3 +++ cmd/drone-server/inject_store.go | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cmd/drone-server/config/config.go b/cmd/drone-server/config/config.go index eff3626e5..40c82f48b 100644 --- a/cmd/drone-server/config/config.go +++ b/cmd/drone-server/config/config.go @@ -107,6 +107,9 @@ type ( Driver string `envconfig:"DRONE_DATABASE_DRIVER" default:"sqlite3"` Datasource string `envconfig:"DRONE_DATABASE_DATASOURCE" default:"core.sqlite"` Secret string `envconfig:"DRONE_DATABASE_SECRET"` + + // Feature flag + ExperimentalBatch bool `envconfig:"DRONE_DATABASE_EXPERIMENTAL_BATCH"` } // Docker provides docker configuration diff --git a/cmd/drone-server/inject_store.go b/cmd/drone-server/inject_store.go index c34aebfbc..60dd527c4 100644 --- a/cmd/drone-server/inject_store.go +++ b/cmd/drone-server/inject_store.go @@ -19,6 +19,7 @@ import ( "github.com/drone/drone/core" "github.com/drone/drone/metric" "github.com/drone/drone/store/batch" + "github.com/drone/drone/store/batch2" "github.com/drone/drone/store/build" "github.com/drone/drone/store/cron" "github.com/drone/drone/store/logs" @@ -44,7 +45,8 @@ var storeSet = wire.NewSet( provideRepoStore, provideStageStore, provideUserStore, - batch.New, + provideBatchStore, + // batch.New, cron.New, perm.New, secret.New, @@ -129,3 +131,12 @@ func provideUserStore(db *db.DB) core.UserStore { metric.UserCount(users) return users } + +// provideBatchStore is a Wire provider function that provides a +// batcher. If the experimental batcher is enabled it is returned. +func provideBatchStore(db *db.DB, config config.Config) core.BatchStore { + if config.Database.ExperimentalBatch { + return batch2.New(db) + } + return batch.New(db) +}