Increase buffer size for result channel in gRPC product retrieval; modify error handling to return nil instead of skipping retry
This commit is contained in:
@@ -23,23 +23,23 @@ func (p *FetchProductsProcessor) ProcessTask(ctx context.Context, task *asynq.Ta
|
||||
var payload types.FetchProductsTask
|
||||
err := payload.Unmarshal(task)
|
||||
if err != nil {
|
||||
return asynq.SkipRetry
|
||||
return nil
|
||||
}
|
||||
marketplaceRepo := marketplace.NewDBRepository(p.Dbpool)
|
||||
marketplaceById, err := marketplaceRepo.GetMarketplaceByID(ctx, payload.MarketplaceId)
|
||||
if err != nil {
|
||||
return asynq.SkipRetry
|
||||
return nil
|
||||
}
|
||||
identifier, err := marketplaceById.GetIdentifier()
|
||||
if err != nil {
|
||||
return asynq.SkipRetry
|
||||
return nil
|
||||
}
|
||||
lockKey := fmt.Sprintf("ozon:products:marketplace:%s:lock", identifier)
|
||||
locker := *redis.Locker
|
||||
_, cancel, err := locker.TryWithContext(ctx, lockKey)
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to acquire lock for marketplace %s: %v\n", identifier, err)
|
||||
return asynq.SkipRetry
|
||||
return nil
|
||||
}
|
||||
defer cancel()
|
||||
ozonRepo := products.NewAPIRepository(marketplaceRepo)
|
||||
@@ -54,7 +54,7 @@ func (p *FetchProductsProcessor) ProcessTask(ctx context.Context, task *asynq.Ta
|
||||
})
|
||||
productsJson, err := json.Marshal(productsProto)
|
||||
if err != nil {
|
||||
return asynq.SkipRetry
|
||||
return nil
|
||||
}
|
||||
redisClient := *redis.Client
|
||||
productsKey := fmt.Sprintf("ozon:products:%s", identifier)
|
||||
|
||||
Reference in New Issue
Block a user