blob: 4b5ff70e217a25de791c3edab24505bd2816e47b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package jobs
import (
"context"
"github.com/spiral/roadrunner/v2/pkg/events"
priorityqueue "github.com/spiral/roadrunner/v2/pkg/priority_queue"
jobState "github.com/spiral/roadrunner/v2/pkg/state/job"
"github.com/spiral/roadrunner/v2/plugins/jobs/job"
"github.com/spiral/roadrunner/v2/plugins/jobs/pipeline"
)
// Consumer represents a single jobs driver interface
type Consumer interface {
Push(ctx context.Context, job *job.Job) error
Register(ctx context.Context, pipeline *pipeline.Pipeline) error
Run(ctx context.Context, pipeline *pipeline.Pipeline) error
Stop(ctx context.Context) error
Pause(ctx context.Context, pipeline string)
Resume(ctx context.Context, pipeline string)
// State provide information about driver state
State(ctx context.Context) (*jobState.State, error)
}
// Constructor constructs Consumer interface. Endure abstraction.
type Constructor interface {
JobsConstruct(configKey string, e events.Handler, queue priorityqueue.Queue) (Consumer, error)
FromPipeline(pipe *pipeline.Pipeline, e events.Handler, queue priorityqueue.Queue) (Consumer, error)
}
|