Split AI service worker task queues
This commit is contained in:
@@ -23,17 +23,19 @@ const (
|
||||
)
|
||||
|
||||
type Worker struct {
|
||||
store *store.Store
|
||||
llm *llm.Client
|
||||
transcriber *transcription.Client
|
||||
workerID string
|
||||
modelProfile string
|
||||
pollInterval time.Duration
|
||||
claimLimit int
|
||||
leaseTimeout time.Duration
|
||||
store *store.Store
|
||||
llm *llm.Client
|
||||
transcriber *transcription.Client
|
||||
workerID string
|
||||
modelProfile string
|
||||
taskTypes []string
|
||||
modelProfiles []string
|
||||
pollInterval time.Duration
|
||||
claimLimit int
|
||||
leaseTimeout time.Duration
|
||||
}
|
||||
|
||||
func New(store *store.Store, llmClient *llm.Client, transcriber *transcription.Client, workerID, modelProfile string, pollInterval, leaseTimeout time.Duration, claimLimit int) *Worker {
|
||||
func New(store *store.Store, llmClient *llm.Client, transcriber *transcription.Client, workerID, modelProfile string, taskTypes, modelProfiles []string, pollInterval, leaseTimeout time.Duration, claimLimit int) *Worker {
|
||||
if pollInterval <= 0 {
|
||||
pollInterval = 2 * time.Second
|
||||
}
|
||||
@@ -46,15 +48,20 @@ func New(store *store.Store, llmClient *llm.Client, transcriber *transcription.C
|
||||
if strings.TrimSpace(workerID) == "" {
|
||||
workerID = "ai-service-worker"
|
||||
}
|
||||
if len(modelProfiles) == 0 {
|
||||
modelProfiles = []string{modelProfile, TranscriptionProfile}
|
||||
}
|
||||
return &Worker{
|
||||
store: store,
|
||||
llm: llmClient,
|
||||
transcriber: transcriber,
|
||||
workerID: workerID,
|
||||
modelProfile: modelProfile,
|
||||
pollInterval: pollInterval,
|
||||
claimLimit: claimLimit,
|
||||
leaseTimeout: leaseTimeout,
|
||||
store: store,
|
||||
llm: llmClient,
|
||||
transcriber: transcriber,
|
||||
workerID: workerID,
|
||||
modelProfile: modelProfile,
|
||||
taskTypes: taskTypes,
|
||||
modelProfiles: modelProfiles,
|
||||
pollInterval: pollInterval,
|
||||
claimLimit: claimLimit,
|
||||
leaseTimeout: leaseTimeout,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,8 +86,8 @@ func (w *Worker) tick(ctx context.Context) {
|
||||
}
|
||||
jobs, err := w.store.ClaimJobs(ctx, model.ClaimJobs{
|
||||
WorkerID: w.workerID,
|
||||
TaskTypes: nil,
|
||||
ModelProfiles: []string{w.modelProfile, TranscriptionProfile},
|
||||
TaskTypes: w.taskTypes,
|
||||
ModelProfiles: w.modelProfiles,
|
||||
Limit: w.claimLimit,
|
||||
})
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user