62 lines
979 B
Go
62 lines
979 B
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"go_dreamfactory/cmd/v2/model"
|
|
"log"
|
|
"sync"
|
|
"time"
|
|
|
|
"github.com/boltdb/bolt"
|
|
)
|
|
|
|
type DbService interface {
|
|
Create(conf *model.GenTool) error
|
|
Update() error
|
|
}
|
|
|
|
type DbServiceImpl struct {
|
|
}
|
|
|
|
func NewDbService() DbService {
|
|
return &DbServiceImpl{}
|
|
}
|
|
|
|
func (this *DbServiceImpl) Create(conf *model.GenTool) error {
|
|
return nil
|
|
}
|
|
|
|
func (this *DbServiceImpl) Update() error {
|
|
return nil
|
|
}
|
|
|
|
var (
|
|
boltDb *bolt.DB
|
|
bucket *bolt.Bucket
|
|
once sync.Once
|
|
err error
|
|
)
|
|
|
|
func GetBoltDb() *bolt.DB {
|
|
once.Do(func() {
|
|
boltDb, err = bolt.Open("my.db", 0600, &bolt.Options{Timeout: 1 * time.Second})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
boltDb.Update(func(tx *bolt.Tx) error {
|
|
b := tx.Bucket([]byte("robotBucket"))
|
|
if b != nil {
|
|
bucket = b
|
|
} else {
|
|
bucket, err = tx.CreateBucket([]byte("robotBucket"))
|
|
if err != nil {
|
|
return fmt.Errorf("create bucket: %s", err)
|
|
}
|
|
}
|
|
return nil
|
|
})
|
|
})
|
|
return boltDb
|
|
}
|