forked from forgejo/forgejo
Automatically pause queue if index service is unavailable (#15066)
* Handle keyword search error when issue indexer service is not available * Implement automatic disabling and resume of code indexer queue
This commit is contained in:
parent
2649eddcf0
commit
8038610a42
28 changed files with 522 additions and 151 deletions
|
@ -5,6 +5,7 @@
|
|||
package issues
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
|
@ -56,19 +57,19 @@ func TestBleveSearchIssues(t *testing.T) {
|
|||
|
||||
time.Sleep(5 * time.Second)
|
||||
|
||||
ids, err := SearchIssuesByKeyword([]int64{1}, "issue2")
|
||||
ids, err := SearchIssuesByKeyword(context.TODO(), []int64{1}, "issue2")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{2}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "first")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "first")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{1}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "for")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "for")
|
||||
assert.NoError(t, err)
|
||||
assert.ElementsMatch(t, []int64{1, 2, 3, 5, 11}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "good")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "good")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{1}, ids)
|
||||
}
|
||||
|
@ -79,19 +80,19 @@ func TestDBSearchIssues(t *testing.T) {
|
|||
setting.Indexer.IssueType = "db"
|
||||
InitIssueIndexer(true)
|
||||
|
||||
ids, err := SearchIssuesByKeyword([]int64{1}, "issue2")
|
||||
ids, err := SearchIssuesByKeyword(context.TODO(), []int64{1}, "issue2")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{2}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "first")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "first")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{1}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "for")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "for")
|
||||
assert.NoError(t, err)
|
||||
assert.ElementsMatch(t, []int64{1, 2, 3, 5, 11}, ids)
|
||||
|
||||
ids, err = SearchIssuesByKeyword([]int64{1}, "good")
|
||||
ids, err = SearchIssuesByKeyword(context.TODO(), []int64{1}, "good")
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, []int64{1}, ids)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue