1diff --git a/cmd/server/main.go b/cmd/server/main.go
2index 54a7ba05d479b9184ccf4c363fb1e4f091d68a75..473bed9c8f84206f027b3c505fb0260e04d5e627 100644
3--- a/cmd/server/main.go
4+++ b/cmd/server/main.go
5@@ -119,7 +119,7 @@ // worker
6 var (
7 serverWorker = worker.NewServerWorker(&fasthttp.Server{Handler: r.Handler})
8 fileWorker = worker.NewWorkerFromChanProcessor[string](fileScanner, scheduler)
9- exifWorker = worker.NewWorkerFromListProcessor[*media.Media](
10+ exifWorker = worker.NewWorkerFromBatchProcessor[*media.Media](
11 exifScanner,
12 scheduler,
13 logrus.WithField("context", "exif scanner"),
14diff --git a/pkg/worker/exif_scanner.go b/pkg/worker/exif_scanner.go
15index d7865e39737f316d2fe38599868cd8bb9cf5ea6f..4aa247d832bb5261d0373c4fbb8bb8d90c73af02 100644
16--- a/pkg/worker/exif_scanner.go
17+++ b/pkg/worker/exif_scanner.go
18@@ -13,7 +13,7 @@ repository media.Repository
19 }
20 )
21
22-var _ ListProcessor[*media.Media] = &EXIFScanner{}
23+var _ BatchProcessor[*media.Media] = &EXIFScanner{}
24
25 func NewEXIFScanner(repository media.Repository) *EXIFScanner {
26 return &EXIFScanner{
27diff --git a/pkg/worker/list_processor.go b/pkg/worker/list_processor.go
28index c9c20a9d5b27b2f855df75ce8e98527973c51a96..bbc9fb747c6192a137c133bb457b6a5771cb54c1 100644
29--- a/pkg/worker/list_processor.go
30+++ b/pkg/worker/list_processor.go
31@@ -16,7 +16,7 @@ Query(context.Context) (<-chan T, error)
32 Process(context.Context, T) error
33 }
34
35- ListProcessor[T any] interface {
36+ BatchProcessor[T any] interface {
37 Query(context.Context) ([]T, error)
38 Process(context.Context, T) error
39 }
40@@ -26,38 +26,38 @@ chanProcessor ChanProcessor[T]
41 scheduler *Scheduler
42 }
43
44- listProcessorWorker[T any] struct {
45- listProcessor ListProcessor[T]
46- logrus *logrus.Entry
47- scheduler *Scheduler
48+ batchProcessorWorker[T any] struct {
49+ batchProcessor BatchProcessor[T]
50+ logrus *logrus.Entry
51+ scheduler *Scheduler
52 }
53 )
54
55-func NewWorkerFromListProcessor[T any](
56- listProcessor ListProcessor[T],
57+func NewWorkerFromBatchProcessor[T any](
58+ batchProcessor BatchProcessor[T],
59 scheduler *Scheduler,
60 logrus *logrus.Entry,
61 ) Worker {
62- return &listProcessorWorker[T]{
63- listProcessor: listProcessor,
64- scheduler: scheduler,
65- logrus: logrus,
66+ return &batchProcessorWorker[T]{
67+ batchProcessor: batchProcessor,
68+ scheduler: scheduler,
69+ logrus: logrus,
70 }
71 }
72
73 func NewWorkerFromChanProcessor[T any](
74- listProcessor ChanProcessor[T],
75+ chanProcessor ChanProcessor[T],
76 scheduler *Scheduler,
77 ) Worker {
78 return &chanProcessorWorker[T]{
79- chanProcessor: listProcessor,
80+ chanProcessor: chanProcessor,
81 scheduler: scheduler,
82 }
83 }
84
85-func (l *listProcessorWorker[T]) Start(ctx context.Context) error {
86+func (l *batchProcessorWorker[T]) Start(ctx context.Context) error {
87 for {
88- values, err := l.listProcessor.Query(ctx)
89+ values, err := l.batchProcessor.Query(ctx)
90 if err != nil {
91 return err
92 }
93@@ -79,7 +79,7 @@ l.scheduler.Take()
94 go func(v T) {
95 defer l.scheduler.Return()
96 defer wg.Done()
97- if err := l.listProcessor.Process(ctx, v); err != nil && !errors.Is(err, context.Canceled) {
98+ if err := l.batchProcessor.Process(ctx, v); err != nil && !errors.Is(err, context.Canceled) {
99 l.logrus.WithError(err).Error("Error processing batch")
100 }
101 }(v)