diff options
Diffstat (limited to 'plugins/jobs/oooold/job.go')
-rw-r--r-- | plugins/jobs/oooold/job.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/plugins/jobs/oooold/job.go b/plugins/jobs/oooold/job.go new file mode 100644 index 00000000..2f80c1cc --- /dev/null +++ b/plugins/jobs/oooold/job.go @@ -0,0 +1,38 @@ +package oooold + +import json "github.com/json-iterator/go" + +// Handler handles job execution. +type Handler func(id string, j *Job) error + +// ErrorHandler handles job execution errors. +type ErrorHandler func(id string, j *Job, err error) + +// Job carries information about single job. +type Job struct { + // Job contains name of job broker (usually PHP class). + Job string `json:"job"` + + // Payload is string data (usually JSON) passed to Job broker. + Payload string `json:"payload"` + + // Options contains set of PipelineOptions specific to job execution. Can be empty. + Options *Options `json:"options,omitempty"` +} + +// Body packs job payload into binary payload. +func (j *Job) Body() []byte { + return []byte(j.Payload) +} + +// Context packs job context (job, id) into binary payload. +func (j *Job) Context(id string) []byte { + ctx, _ := json.Marshal( + struct { + ID string `json:"id"` + Job string `json:"job"` + }{ID: id, Job: j.Job}, + ) + + return ctx +} |