@@ -75,16 +75,18 @@ func filenameOfIndexerID(indexerID string) string {
75
75
76
76
// IndexerData represents data stored in the code indexer
77
77
type IndexerData struct {
78
- RepoID int64
79
- IsDelete bool
78
+ RepoID int64
80
79
}
81
80
82
81
var (
83
- indexerQueue queue.Queue
82
+ indexerQueue queue.UniqueQueue
84
83
)
85
84
86
85
func index (indexer Indexer , repoID int64 ) error {
87
86
repo , err := models .GetRepositoryByID (repoID )
87
+ if models .IsErrRepoNotExist (err ) {
88
+ return indexer .Delete (repoID )
89
+ }
88
90
if err != nil {
89
91
return err
90
92
}
@@ -146,22 +148,16 @@ func Init() {
146
148
log .Error ("Unable to process provided datum: %v - not possible to cast to IndexerData" , datum )
147
149
continue
148
150
}
149
- log .Trace ("IndexerData Process: %v %t" , indexerData .RepoID , indexerData .IsDelete )
150
-
151
- if indexerData .IsDelete {
152
- if err := indexer .Delete (indexerData .RepoID ); err != nil {
153
- log .Error ("indexer.Delete: %v" , err )
154
- }
155
- } else {
156
- if err := index (indexer , indexerData .RepoID ); err != nil {
157
- log .Error ("index: %v" , err )
158
- continue
159
- }
151
+ log .Trace ("IndexerData Process Repo: %d" , indexerData .RepoID )
152
+
153
+ if err := index (indexer , indexerData .RepoID ); err != nil {
154
+ log .Error ("index: %v" , err )
155
+ continue
160
156
}
161
157
}
162
158
}
163
159
164
- indexerQueue = queue .CreateQueue ("code_indexer" , handler , & IndexerData {})
160
+ indexerQueue = queue .CreateUniqueQueue ("code_indexer" , handler , & IndexerData {})
165
161
if indexerQueue == nil {
166
162
log .Fatal ("Unable to create codes indexer queue" )
167
163
}
@@ -265,14 +261,6 @@ func Init() {
265
261
}
266
262
}
267
263
268
- // DeleteRepoFromIndexer remove all of a repository's entries from the indexer
269
- func DeleteRepoFromIndexer (repo * models.Repository ) {
270
- indexData := & IndexerData {RepoID : repo .ID , IsDelete : true }
271
- if err := indexerQueue .Push (indexData ); err != nil {
272
- log .Error ("Delete repo index data %v failed: %v" , indexData , err )
273
- }
274
- }
275
-
276
264
// UpdateRepoIndexer update a repository's entries in the indexer
277
265
func UpdateRepoIndexer (repo * models.Repository ) {
278
266
indexData := & IndexerData {RepoID : repo .ID }
0 commit comments