Fix queue pop error and stat empty repository error (#10248)

* Fix queue pop error and stat empty repository error

* Fix error
tokarchuk/v1.17
Lunny Xiao 5 years ago committed by GitHub
parent 83a8944fcf
commit 3d69bbd58f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      modules/indexer/stats/db.go
  2. 2
      modules/queue/queue_redis.go
  3. 4
      modules/queue/unique_queue_redis.go

@ -19,6 +19,10 @@ func (db *DBIndexer) Index(id int64) error {
if err != nil { if err != nil {
return err return err
} }
if repo.IsEmpty {
return nil
}
status, err := repo.GetIndexerStatus(models.RepoIndexerTypeStats) status, err := repo.GetIndexerStatus(models.RepoIndexerTypeStats)
if err != nil { if err != nil {
return err return err

@ -121,7 +121,7 @@ func (fifo *RedisByteFIFO) PushFunc(data []byte, fn func() error) error {
// Pop pops data from the start of the fifo // Pop pops data from the start of the fifo
func (fifo *RedisByteFIFO) Pop() ([]byte, error) { func (fifo *RedisByteFIFO) Pop() ([]byte, error) {
data, err := fifo.client.LPop(fifo.queueName).Bytes() data, err := fifo.client.LPop(fifo.queueName).Bytes()
if err != nil && err == redis.Nil { if err == nil || err == redis.Nil {
return data, nil return data, nil
} }
return data, err return data, err

@ -4,6 +4,8 @@
package queue package queue
import "github.com/go-redis/redis"
// RedisUniqueQueueType is the type for redis queue // RedisUniqueQueueType is the type for redis queue
const RedisUniqueQueueType Type = "unique-redis" const RedisUniqueQueueType Type = "unique-redis"
@ -102,7 +104,7 @@ func (fifo *RedisUniqueByteFIFO) PushFunc(data []byte, fn func() error) error {
// Pop pops data from the start of the fifo // Pop pops data from the start of the fifo
func (fifo *RedisUniqueByteFIFO) Pop() ([]byte, error) { func (fifo *RedisUniqueByteFIFO) Pop() ([]byte, error) {
data, err := fifo.client.LPop(fifo.queueName).Bytes() data, err := fifo.client.LPop(fifo.queueName).Bytes()
if err != nil { if err != nil && err != redis.Nil {
return data, err return data, err
} }

Loading…
Cancel
Save