// Copyright 2023 schukai GmbH // SPDX-License-Identifier: AGPL-3.0 package jobqueue import ( "context" "time" ) type GenericJob interface { GetID() JobID GetDependencies() []JobID GetPriority() Priority Execute(ctx context.Context) (RunGenericResult, error) Cancel() error GetMaxRetries() uint GetRetryDelay() *time.Duration GetTimeout() *time.Duration GetPersistence() JobPersistence SetScheduler(scheduler Scheduler) GetScheduler() Scheduler Pause() PauseUntil(until time.Time) Resume() IsPaused() bool ResetStats() GetStats() JobStats }