Skip to content

Commit

Permalink
fix: Removing dumb log when cache is cold
Browse files Browse the repository at this point in the history
Signed-off-by: Vincent Boutour <[email protected]>
  • Loading branch information
ViBiOh committed Dec 30, 2023
1 parent 6281ba5 commit 5ce61eb
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 13 deletions.
18 changes: 14 additions & 4 deletions pkg/metadata/aggregate.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ func (s Service) GetMetadataFor(ctx context.Context, item absto.Item) (metadata
ctx, end := telemetry.StartSpan(ctx, s.tracer, "get_metadata")
defer end(&err)

return s.exifCache.Get(ctx, item)
metadata, err = s.exifCache.Get(ctx, item)
if absto.IsNotExist(err) {
err = nil
}

return metadata, err
}

func (s Service) GetAllMetadataFor(ctx context.Context, items ...absto.Item) (map[string]provider.Metadata, error) {
Expand All @@ -38,7 +43,7 @@ func (s Service) GetAllMetadataFor(ctx context.Context, items ...absto.Item) (ma
ctx, end := telemetry.StartSpan(ctx, s.tracer, "get_all_metadata")
defer end(&err)

exifs, err := s.exifCache.List(ctx, items...)
exifs, err := s.exifCache.List(ctx, provider.KeepOnlyFile(items)...)
if err != nil {
return nil, fmt.Errorf("list: %w", err)
}
Expand All @@ -63,7 +68,12 @@ func (s Service) GetAggregateFor(ctx context.Context, item absto.Item) (aggregat
ctx, end := telemetry.StartSpan(ctx, s.tracer, "get_aggregate")
defer end(&err)

return s.aggregateCache.Get(ctx, item)
aggregate, err = s.aggregateCache.Get(ctx, item)
if absto.IsNotExist(err) {
err = nil
}

return aggregate, err
}

func (s Service) GetAllAggregateFor(ctx context.Context, items ...absto.Item) (map[string]provider.Aggregate, error) {
Expand All @@ -72,7 +82,7 @@ func (s Service) GetAllAggregateFor(ctx context.Context, items ...absto.Item) (m
ctx, end := telemetry.StartSpan(ctx, s.tracer, "get_all_aggregate")
defer end(&err)

exifs, err := s.aggregateCache.List(ctx, items...)
exifs, err := s.aggregateCache.List(ctx, provider.KeepOnlyDir(items)...)
if err != nil {
return nil, fmt.Errorf("list: %w", err)
}
Expand Down
16 changes: 11 additions & 5 deletions pkg/metadata/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,27 @@ func (s Service) EventConsumer(ctx context.Context, e provider.Event) {
if err = s.handleStartEvent(ctx, e); err != nil {
getEventLogger(e.Item).ErrorContext(ctx, "start", "error", err)
}

case provider.UploadEvent:
if err = s.handleUploadEvent(ctx, e.Item, true); err != nil {
getEventLogger(e.Item).ErrorContext(ctx, "upload", "error", err)
}

case provider.RenameEvent:
if !e.Item.IsDir() {
err = s.Rename(ctx, e.Item, *e.New)
if err == nil {
err = s.aggregateOnRename(ctx, e.Item, *e.New)
}
if e.Item.IsDir() {
// Dir are handled on the event bus
return
}

err = s.Rename(ctx, e.Item, *e.New)
if err == nil {
err = s.aggregateOnRename(ctx, e.Item, *e.New)
}

if err != nil {
getEventLogger(e.Item).ErrorContext(ctx, "rename", "error", err)
}

case provider.DeleteEvent:
if err := s.delete(ctx, e.Item); err != nil {
getEventLogger(e.Item).ErrorContext(ctx, "delete", "error", err)
Expand Down
27 changes: 27 additions & 0 deletions pkg/provider/item.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package provider

import absto "github.com/ViBiOh/absto/pkg/model"

func KeepOnlyDir(items []absto.Item) []absto.Item {
var filtered []absto.Item

for _, item := range items {
if item.IsDir() {
filtered = append(filtered, item)
}
}

return filtered
}

func KeepOnlyFile(items []absto.Item) []absto.Item {
var filtered []absto.Item

for _, item := range items {
if !item.IsDir() {
filtered = append(filtered, item)
}
}

return filtered
}
11 changes: 7 additions & 4 deletions pkg/thumbnail/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ func (s Service) EventConsumer(ctx context.Context, e provider.Event) {
case provider.UploadEvent:
s.generateItem(ctx, e)
case provider.RenameEvent:
if !e.Item.IsDir() {
if err := s.Rename(ctx, e.Item, *e.New); err != nil {
slog.ErrorContext(ctx, "rename item", "error", err)
}
if e.Item.IsDir() {
// Dir are handled on the event bus
return
}

if err := s.Rename(ctx, e.Item, *e.New); err != nil {
slog.ErrorContext(ctx, "rename item", "error", err)
}
case provider.DeleteEvent:
s.delete(ctx, e.Item)
Expand Down

0 comments on commit 5ce61eb

Please sign in to comment.