Files
query-orchestration/internal/query/queue/service.go
T

56 lines
1.2 KiB
Go
Raw Normal View History

2025-01-07 16:30:45 +00:00
package queryqueue
2024-12-23 16:01:54 +00:00
import (
"context"
2025-01-06 12:26:28 +00:00
"queryorchestration/internal/database"
"queryorchestration/internal/job/collector"
queryprocessor "queryorchestration/internal/query/processor"
"queryorchestration/internal/query/result"
2024-12-23 16:01:54 +00:00
"github.com/google/uuid"
)
type Queue struct {
2025-01-06 15:31:39 +00:00
unsyncedQueue []*queryprocessor.Query
collectorQueries []*queryprocessor.Query
results []*result.Result
2024-12-23 16:01:54 +00:00
collector *collector.Collector
2025-01-06 12:26:28 +00:00
db *database.Connection
documentId uuid.UUID
2024-12-23 16:01:54 +00:00
cleanVersion int32
textVersion int32
}
type NewConfig struct {
DB *database.Connection
Collector *collector.Collector
Results []*result.Result
DocumentID uuid.UUID
CleanVersion int32
TextVersion int32
}
func New(ctx context.Context, cfg *NewConfig) (*Queue, error) {
2024-12-23 16:01:54 +00:00
queue := Queue{
db: cfg.DB,
results: cfg.Results,
collector: cfg.Collector,
documentId: cfg.DocumentID,
cleanVersion: cfg.CleanVersion,
textVersion: cfg.TextVersion,
2024-12-23 16:01:54 +00:00
}
err := queue.getCollectorQueries(ctx)
if err != nil {
return nil, err
}
queue.getUnsyncedQueries()
return &queue, nil
}
2025-01-06 15:31:39 +00:00
func (q *Queue) GetQueue() []*queryprocessor.Query {
return q.unsyncedQueue
2024-12-23 16:01:54 +00:00
}