Documentation
¶
Overview ¶
Package job defines utilities for managing jobs.
Index ¶
- type IAsynchronousJob
- type IJobManager
- type Manager
- func (m *Manager) FetchJobMessagesFirstPage(ctx context.Context, job IAsynchronousJob) (page pagination.IStaticPageStream, err error)
- func (m *Manager) HasJobCompleted(ctx context.Context, job IAsynchronousJob) (completed bool, err error)
- func (m *Manager) HasJobStarted(ctx context.Context, job IAsynchronousJob) (started bool, err error)
- func (m *Manager) WaitForJobCompletion(ctx context.Context, job IAsynchronousJob) error
- func (m *Manager) WaitForJobCompletionWithTimeout(ctx context.Context, job IAsynchronousJob, timeout time.Duration) (err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IAsynchronousJob ¶
type IAsynchronousJob interface {
resource.IResource
// GetDone returns whether a job has terminated.
GetDone() bool
// GetError returns whether a system error occurred.
GetError() bool
// GetFailure returns whether the job has failed.
GetFailure() bool
// GetSuccess returns whether the job has been successful.
GetSuccess() bool
// GetStatus returns the state the job is in. This is for information only and should not be relied upon as likely to change. Use flags for implementing a state machine.
GetStatus() string
// GetQueued returns whether the job is being queued and has not started just yet
GetQueued() bool
// HasMessages returns whether the job has messages available.
HasMessages() bool
// HasArtefacts returns whether the job has artefacts available.
HasArtefacts() bool
}
IAsynchronousJob defines a typical asynchronous job.
type IJobManager ¶
type IJobManager interface {
// HasJobCompleted calls the services to determine whether the job has completed.
HasJobCompleted(ctx context.Context, job IAsynchronousJob) (completed bool, err error)
// HasJobStarted calls the services to determine whether the job has started.
HasJobStarted(ctx context.Context, job IAsynchronousJob) (completed bool, err error)
// WaitForJobCompletion waits for a job to complete. Similar to WaitForJobCompletionWithTimeout but with a timeout set to 5 minutes.
WaitForJobCompletion(ctx context.Context, job IAsynchronousJob) (err error)
// WaitForJobCompletionWithTimeout waits for a job to complete but with timeout protection.
WaitForJobCompletionWithTimeout(ctx context.Context, job IAsynchronousJob, timeout time.Duration) (err error)
}
IJobManager defines a manager of asynchronous jobs
func NewJobManager ¶
func NewJobManager(logger *messages.MessageLoggerFactory, backOffPeriod time.Duration, fetchJobStatusFunc func(ctx context.Context, jobName string) (IAsynchronousJob, *http.Response, error), fetchJobFirstMessagePageFunc func(ctx context.Context, jobName string) (pagination.IStaticPageStream, *http.Response, error), fetchNextJobMessagesPageFunc func(context.Context, pagination.IStaticPage) (pagination.IStaticPage, error), fetchFutureJobMessagesPageFunc func(context.Context, pagination.IStaticPageStream) (pagination.IStaticPageStream, error)) (IJobManager, error)
NewJobManager creates a new job manager.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func (*Manager) FetchJobMessagesFirstPage ¶ added in v1.3.3
func (m *Manager) FetchJobMessagesFirstPage(ctx context.Context, job IAsynchronousJob) (page pagination.IStaticPageStream, err error)
func (*Manager) HasJobCompleted ¶
func (*Manager) HasJobStarted ¶ added in v1.5.2
func (*Manager) WaitForJobCompletion ¶
func (m *Manager) WaitForJobCompletion(ctx context.Context, job IAsynchronousJob) error
func (*Manager) WaitForJobCompletionWithTimeout ¶ added in v1.7.0
Click to show internal directories.
Click to hide internal directories.