jobqueue: Replace JobArgs() with Job()
JobArgs() function replaced with more general Job() function that returns all the parameters used to originally define a job during Enqueue(). This new function enables access to the type of a job in the queue, which wasn't available until now (except when Dequeueing).
This commit is contained in:
parent
75a96bd99d
commit
668fb003ef
6 changed files with 26 additions and 18 deletions
|
|
@ -287,13 +287,16 @@ func (q *fsJobQueue) JobStatus(id uuid.UUID) (result json.RawMessage, queued, st
|
|||
return
|
||||
}
|
||||
|
||||
func (q *fsJobQueue) JobArgs(id uuid.UUID) (args json.RawMessage, err error) {
|
||||
func (q *fsJobQueue) Job(id uuid.UUID) (jobType string, args json.RawMessage, dependencies []uuid.UUID, err error) {
|
||||
j, err := q.readJob(id)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
jobType = j.Type
|
||||
args = j.Args
|
||||
dependencies = j.Dependencies
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -103,10 +103,12 @@ func TestArgs(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, twoargs, parsedArgs)
|
||||
|
||||
// Read args after Dequeue
|
||||
jargs, err := q.JobArgs(id)
|
||||
// Read job params after Dequeue
|
||||
jtype, jargs, jdeps, err := q.Job(id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, args, jargs)
|
||||
require.Equal(t, deps, jdeps)
|
||||
require.Equal(t, typ, jtype)
|
||||
|
||||
id, deps, typ, args, err = q.Dequeue(context.Background(), []string{"fish"})
|
||||
require.NoError(t, err)
|
||||
|
|
@ -117,12 +119,13 @@ func TestArgs(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, oneargs, parsedArgs)
|
||||
|
||||
// Read args directly after Dequeue
|
||||
jargs, err = q.JobArgs(id)
|
||||
jtype, jargs, jdeps, err = q.Job(id)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, args, jargs)
|
||||
require.Equal(t, deps, jdeps)
|
||||
require.Equal(t, typ, jtype)
|
||||
|
||||
_, err = q.JobArgs(uuid.New())
|
||||
_, _, _, err = q.Job(uuid.New())
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -60,8 +60,8 @@ type JobQueue interface {
|
|||
// Lastly, the IDs of the jobs dependencies are returned.
|
||||
JobStatus(id uuid.UUID) (result json.RawMessage, queued, started, finished time.Time, canceled bool, deps []uuid.UUID, err error)
|
||||
|
||||
// Returns the job's arguments in Raw form.
|
||||
JobArgs(id uuid.UUID) (args json.RawMessage, err error)
|
||||
// Job returns all the parameters that define a job (everything provided during Enqueue).
|
||||
Job(id uuid.UUID) (jobType string, args json.RawMessage, dependencies []uuid.UUID, err error)
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue