summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/indexer/code/indexer.go34
-rw-r--r--modules/notification/indexer/indexer.go2
2 files changed, 12 insertions, 24 deletions
diff --git a/modules/indexer/code/indexer.go b/modules/indexer/code/indexer.go
index 46b5905059..981167a825 100644
--- a/modules/indexer/code/indexer.go
+++ b/modules/indexer/code/indexer.go
@@ -75,16 +75,18 @@ func filenameOfIndexerID(indexerID string) string {
// IndexerData represents data stored in the code indexer
type IndexerData struct {
- RepoID int64
- IsDelete bool
+ RepoID int64
}
var (
- indexerQueue queue.Queue
+ indexerQueue queue.UniqueQueue
)
func index(indexer Indexer, repoID int64) error {
repo, err := models.GetRepositoryByID(repoID)
+ if models.IsErrRepoNotExist(err) {
+ return indexer.Delete(repoID)
+ }
if err != nil {
return err
}
@@ -146,22 +148,16 @@ func Init() {
log.Error("Unable to process provided datum: %v - not possible to cast to IndexerData", datum)
continue
}
- log.Trace("IndexerData Process: %v %t", indexerData.RepoID, indexerData.IsDelete)
-
- if indexerData.IsDelete {
- if err := indexer.Delete(indexerData.RepoID); err != nil {
- log.Error("indexer.Delete: %v", err)
- }
- } else {
- if err := index(indexer, indexerData.RepoID); err != nil {
- log.Error("index: %v", err)
- continue
- }
+ log.Trace("IndexerData Process Repo: %d", indexerData.RepoID)
+
+ if err := index(indexer, indexerData.RepoID); err != nil {
+ log.Error("index: %v", err)
+ continue
}
}
}
- indexerQueue = queue.CreateQueue("code_indexer", handler, &IndexerData{})
+ indexerQueue = queue.CreateUniqueQueue("code_indexer", handler, &IndexerData{})
if indexerQueue == nil {
log.Fatal("Unable to create codes indexer queue")
}
@@ -265,14 +261,6 @@ func Init() {
}
}
-// DeleteRepoFromIndexer remove all of a repository's entries from the indexer
-func DeleteRepoFromIndexer(repo *models.Repository) {
- indexData := &IndexerData{RepoID: repo.ID, IsDelete: true}
- if err := indexerQueue.Push(indexData); err != nil {
- log.Error("Delete repo index data %v failed: %v", indexData, err)
- }
-}
-
// UpdateRepoIndexer update a repository's entries in the indexer
func UpdateRepoIndexer(repo *models.Repository) {
indexData := &IndexerData{RepoID: repo.ID}
diff --git a/modules/notification/indexer/indexer.go b/modules/notification/indexer/indexer.go
index 205194ad3e..109eb1f62d 100644
--- a/modules/notification/indexer/indexer.go
+++ b/modules/notification/indexer/indexer.go
@@ -109,7 +109,7 @@ func (r *indexerNotifier) NotifyDeleteComment(doer *models.User, comment *models
func (r *indexerNotifier) NotifyDeleteRepository(doer *models.User, repo *models.Repository) {
issue_indexer.DeleteRepoIssueIndexer(repo)
if setting.Indexer.RepoIndexerEnabled {
- code_indexer.DeleteRepoFromIndexer(repo)
+ code_indexer.UpdateRepoIndexer(repo)
}
}