thread-master/apps/backend/internal/module/job/domain/repository.go

25 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package domain
import "context"
type Repository interface {
Insert(ctx context.Context, j *Job) error
Update(ctx context.Context, j *Job) error
// UpdateOwned atomically requires the current running lease to belong to leaseOwner.
UpdateOwned(ctx context.Context, j *Job, leaseOwner string) error
RenewLease(ctx context.Context, id, leaseOwner string, leaseExpiresAt int64) error
FindByID(ctx context.Context, id string) (*Job, error)
ListByOwner(ctx context.Context, ownerUID int64) ([]*Job, error)
// ListByOwnerTab 分頁分桶total 為該 tab 總筆數
ListByOwnerTab(ctx context.Context, ownerUID int64, tab string, page, pageSize int) (list []*Job, total int64, err error)
// ClaimNext atomically claims a due queued job or a running job with an expired lease.
ClaimNext(ctx context.Context, workerID string) (*Job, error)
// CancelPendingByRef cancels pending/queued jobs of template+ref (e.g. reschedule renew).
CancelPendingByRef(ctx context.Context, ownerUID int64, template, refID string) error
// Delete hard-removes a job by id.
Delete(ctx context.Context, id string) error
// DeleteTerminalBefore removes terminal jobs whose completion time is before beforeNs.
// Returns number of deleted documents.
DeleteTerminalBefore(ctx context.Context, beforeNs int64) (int64, error)
}