|
7 | 7 | "sync/atomic" |
8 | 8 | "time" |
9 | 9 |
|
10 | | - "github.com/goccy/go-json" |
11 | 10 | "github.com/golang-queue/queue/core" |
12 | 11 | "github.com/golang-queue/queue/job" |
13 | 12 | ) |
@@ -113,35 +112,26 @@ func (q *Queue) Wait() { |
113 | 112 | q.routineGroup.Wait() |
114 | 113 | } |
115 | 114 |
|
116 | | -// Queue to queue all job |
117 | | -func (q *Queue) Queue(m core.QueuedMessage, opts ...job.AllowOption) error { |
118 | | - if atomic.LoadInt32(&q.stopFlag) == 1 { |
119 | | - return ErrQueueShutdown |
120 | | - } |
121 | | - |
122 | | - message := job.NewMessage(m, opts...) |
123 | | - payload := message.Encode() |
124 | | - message.Rest() |
125 | | - message.Payload = payload |
126 | | - |
127 | | - if err := q.worker.Queue(message); err != nil { |
128 | | - return err |
129 | | - } |
| 115 | +// Queue to queue single job with binary |
| 116 | +func (q *Queue) Queue(message core.QueuedMessage, opts ...job.AllowOption) error { |
| 117 | + data := job.NewMessage(message, opts...) |
| 118 | + data.Encode() |
130 | 119 |
|
131 | | - q.metric.IncSubmittedTask() |
132 | | - |
133 | | - return nil |
| 120 | + return q.queue(data) |
134 | 121 | } |
135 | 122 |
|
136 | | -// QueueTask to queue job task |
| 123 | +// QueueTask to queue single task |
137 | 124 | func (q *Queue) QueueTask(task job.TaskFunc, opts ...job.AllowOption) error { |
| 125 | + data := job.NewTask(task, opts...) |
| 126 | + return q.queue(data) |
| 127 | +} |
| 128 | + |
| 129 | +func (q *Queue) queue(m *job.Message) error { |
138 | 130 | if atomic.LoadInt32(&q.stopFlag) == 1 { |
139 | 131 | return ErrQueueShutdown |
140 | 132 | } |
141 | 133 |
|
142 | | - message := job.NewTask(task, opts...) |
143 | | - |
144 | | - if err := q.worker.Queue(message); err != nil { |
| 134 | + if err := q.worker.Queue(m); err != nil { |
145 | 135 | return err |
146 | 136 | } |
147 | 137 |
|
@@ -178,7 +168,8 @@ func (q *Queue) work(task core.QueuedMessage) { |
178 | 168 | func (q *Queue) run(task core.QueuedMessage) error { |
179 | 169 | data := task.(*job.Message) |
180 | 170 | if data.Task == nil { |
181 | | - _ = json.Unmarshal(task.Bytes(), data) |
| 171 | + data = job.Decode(task.Bytes()) |
| 172 | + data.Data = data.Payload |
182 | 173 | } |
183 | 174 |
|
184 | 175 | return q.handle(data) |
|
0 commit comments