init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
package queue
import (
"context"
"log/slog"
)
type FileProcessingEnqueuer struct {
serializer FileProcessingMessageSerializer
producer QueueProducer
logger *slog.Logger
}
func NewFileProcessingEnqueuer(serializer FileProcessingMessageSerializer, producer QueueProducer, logger *slog.Logger) *FileProcessingEnqueuer {
if logger == nil {
logger = slog.Default()
}
return &FileProcessingEnqueuer{
serializer: serializer,
producer: producer,
logger: logger,
}
}
func (e *FileProcessingEnqueuer) Enqueue(ctx context.Context, job FileProcessingJob) error {
message, err := e.serializer.Serialize(ctx, job)
if err != nil {
return err
}
if err := e.producer.Publish(ctx, *message); err != nil {
e.logger.Error("file queue publish failed",
slog.String("backend", e.producer.Backend()),
slog.String("message_id", message.ID),
slog.String("file_uuid", job.Canonical().FileUUID),
slog.String("correlation_id", message.Attributes["correlation_id"]),
slog.Any("error", err),
)
return err
}
e.logger.Info("file queue published",
slog.String("backend", e.producer.Backend()),
slog.String("message_id", message.ID),
slog.String("file_uuid", job.Canonical().FileUUID),
slog.String("correlation_id", message.Attributes["correlation_id"]),
)
return nil
}