From da1f6fa23c9f0225337cebc8cac692f0c9b31068 Mon Sep 17 00:00:00 2001 From: like Date: Mon, 31 Jul 2023 14:34:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A3=80=E6=9F=A5=E5=B9=B6=E5=88=9B?= =?UTF-8?q?=E5=BB=BAOpenSearch=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.go | 6 ++++++ src/service/alert.go | 41 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main.go b/src/main.go index eab109c..752dd21 100644 --- a/src/main.go +++ b/src/main.go @@ -45,6 +45,12 @@ func main() { // redis client go client.GetRedisClient() + // 初始化OpenSearch的索引 + err := service.CheckAndCreateIndex() + if err != nil { + conf.Logger.Fatal("failed to init OpenSearch index.", zap.Error(err)) + } + //启动定时任务 cron.StartCron() service.PushWorkOrderMessage() diff --git a/src/service/alert.go b/src/service/alert.go index 5665d6a..9531e80 100644 --- a/src/service/alert.go +++ b/src/service/alert.go @@ -283,13 +283,50 @@ var ( }`) ) -func (a *AlertSvc) CreateIndex() error { +func CheckAndCreateIndex() (err error) { + exist, err := checkIndexExists(OpenSearchIndex) + if err != nil { + return + } + + if exist { + return nil + } + + err = CreateIndex(OpenSearchIndex) + if err != nil { + return err + } + return nil +} + +func checkIndexExists(indexName string) (exist bool, err error) { + cli, err := client.GetOpenSearch() + if err != nil { + return + } + req := opensearchapi.IndicesExistsRequest{Index: []string{indexName}} + res, err := req.Do(context.Background(), cli) + if err != nil { + return false, err + } + defer res.Body.Close() + if res.StatusCode == http.StatusOK { + return true, nil + } else if res.StatusCode == http.StatusNotFound { + return false, nil + } else { + return false, fmt.Errorf("请求失败,状态码:%d", res.StatusCode) + } +} + +func CreateIndex(indexName string) error { cli, err := client.GetOpenSearch() if err != nil { return err } res := opensearchapi.IndicesCreateRequest{ - Index: OpenSearchIndex, + Index: indexName, Body: Mapping, } do, err := res.Do(context.Background(), cli) -- 2.26.0