22 lines
797 B
Go
22 lines
797 B
Go
package queue
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"git.ilapage.cn/OPC/chorus/internal/core/model"
|
|
)
|
|
|
|
type Claim struct {
|
|
Generation model.Generation
|
|
LeaseToken string
|
|
}
|
|
|
|
type Repository interface {
|
|
CreateIdempotent(ctx context.Context, generation *model.Generation, inputs []model.GenerationInput) (created bool, err error)
|
|
ClaimNext(ctx context.Context, owner string, leaseDuration time.Duration) (*Claim, error)
|
|
AssignProvider(ctx context.Context, generationID uint64, leaseToken string, providerModelID uint64) (bool, error)
|
|
Succeed(ctx context.Context, generationID uint64, leaseToken string, outputs []model.GenerationOutput, attempt model.Attempt) (bool, error)
|
|
Fail(ctx context.Context, generationID uint64, leaseToken string, code, message string, attempt model.Attempt) (bool, error)
|
|
}
|