MCPcopy Create free account
hub / github.com/apache/answer-plugins / sync

Method sync

search-algolia/sync.go:28–73  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

26)
27
28func (s *SearchAlgolia) sync() {
29 var page, pageSize = 1, 100
30 go func() {
31 log.Info("algolia: start sync questions...")
32 page = 1
33 for {
34 log.Infof("algolia: sync question page %d, page size %d", page, pageSize)
35 questionList, err := s.syncer.GetQuestionsPage(context.TODO(), page, pageSize)
36 if err != nil {
37 log.Error("algolia: sync questions error", err)
38 break
39 }
40 if len(questionList) == 0 {
41 break
42 }
43 err = s.batchUpdateContent(context.TODO(), questionList)
44 if err != nil {
45 log.Error("algolia: sync questions error", err)
46 }
47 page += 1
48 }
49
50 log.Info("algolia: start sync answers...")
51 page = 1
52 for {
53 log.Infof("algolia: sync answer page %d, page size %d", page, pageSize)
54 answerList, err := s.syncer.GetAnswersPage(context.TODO(), page, pageSize)
55 if err != nil {
56 log.Error("algolia: sync answers error", err)
57 break
58 }
59
60 if len(answerList) == 0 {
61 break
62 }
63
64 err = s.batchUpdateContent(context.TODO(), answerList)
65 if err != nil {
66 log.Error("algolia: sync answers error", err)
67 }
68
69 page += 1
70 }
71 log.Info("algolia: sync done")
72 }()
73}
74
75func (s *SearchAlgolia) batchUpdateContent(ctx context.Context, contents []*plugin.SearchContent) (err error) {
76 res, err := s.getIndex("").SaveObjects(contents)

Callers 1

RegisterSyncerMethod · 0.95

Calls 2

batchUpdateContentMethod · 0.95
InfoMethod · 0.45

Tested by

no test coverage detected