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"
|
2025-01-17 12:00:32 +00:00
|
|
|
"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
|
2025-01-21 12:28:46 +00:00
|
|
|
documentId uuid.UUID
|
2024-12-23 16:01:54 +00:00
|
|
|
cleanVersion int32
|
|
|
|
|
textVersion int32
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-21 12:28:46 +00:00
|
|
|
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{
|
2025-01-21 12:28:46 +00:00
|
|
|
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
|
|
|
}
|