diff --git a/common/storage/initialize.go b/common/storage/initialize.go new file mode 100644 index 00000000..6fa323dc --- /dev/null +++ b/common/storage/initialize.go @@ -0,0 +1,52 @@ +/* + * @Author: lwnmengjing + * @Date: 2021/6/10 3:39 下午 + * @Last Modified by: lwnmengjing + * @Last Modified time: 2021/6/10 3:39 下午 + */ + +package storage + +import ( + "log" + + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/config" + "github.com/go-admin-team/go-admin-core/sdk/pkg/captcha" +) + +// Setup 配置storage组件 +func Setup() { + //4. 设置缓存 + cacheAdapter, err := config.CacheConfig.Setup() + if err != nil { + log.Fatalf("cache setup error, %s\n", err.Error()) + } + sdk.Runtime.SetCacheAdapter(cacheAdapter) + //5. 设置验证码store + captcha.SetStore(captcha.NewCacheStore(cacheAdapter, 600)) + + //6. 设置队列 + if !config.QueueConfig.Empty() { + if q := sdk.Runtime.GetQueueAdapter(); q != nil { + q.Shutdown() + } + queueAdapter, err := config.QueueConfig.Setup() + if err != nil { + log.Fatalf("queue setup error, %s\n", err.Error()) + } + sdk.Runtime.SetQueueAdapter(queueAdapter) + defer func() { + go queueAdapter.Run() + }() + } + + //7. 设置分布式锁 + if !config.LockerConfig.Empty() { + lockerAdapter, err := config.LockerConfig.Setup() + if err != nil { + log.Fatalf("locker setup error, %s\n", err.Error()) + } + sdk.Runtime.SetLockerAdapter(lockerAdapter) + } +}