elastic.go 801 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package es
  2. import (
  3. "context"
  4. "github.com/olivere/elastic"
  5. "iot_manager_service/config"
  6. "log"
  7. "os"
  8. "time"
  9. )
  10. type es struct {
  11. }
  12. var Es es
  13. var Client *elastic.Client
  14. func (e *es) InitES() {
  15. errLog := log.New(os.Stdout, "APP", log.LstdFlags)
  16. url := config.Instance().Es.URL
  17. client, err := elastic.NewClient(elastic.SetErrorLog(errLog))
  18. elastic.SetURL(url)
  19. if err != nil {
  20. //todo 初始化错误处理
  21. panic(err)
  22. }
  23. Client = client
  24. //启动定时删除
  25. go delTicker()
  26. }
  27. // 定时器
  28. func delTicker() {
  29. ticker := time.Tick(15 * 24 * time.Hour)
  30. for range ticker {
  31. indexName := time.Now().Add(-15 * 24 * time.Hour).Format("2006-01-02")
  32. delIndex(indexName)
  33. }
  34. }
  35. // DelIndex 删除索引
  36. func delIndex(indexName string) {
  37. Client.DeleteIndex(indexName).Do(context.Background())
  38. }