You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
由于**没有**从 Pop 队列(f.queue) 中移除该对象,如果先 Add/Update 对象,在 Pop 前又 Delete 该对象,则弹出队列中还有该对象的 Key 记录,Pop 遇到这种情况时**会跳过**,继续 Pop 下一个对象。所以 FIFO **不会缓存和 Pop 删除的对象**。
155
+
由于**没有**从 Pop 队列(f.queue) 中移除该对象,如果先 Add/Update 对象,在 Pop 前又 Delete 该对象,则弹出队列中还有该对象的 Key 记录,Pop 遇到这种情况时**会跳过**,继续 Pop 下一个对象。所以 FIFO **不会缓存和 Pop 删除的对象**。
156
156
157
157
### `Pop()` 方法
158
158
159
159
返回弹出队列(f.queue) 中的对象,如果 f.queue 为空,则一直阻塞。
160
160
161
-
Pop 先从弹出队列(f.queue)移除对象,然后从对象缓存(f.items)中删除对象,接着调用 process 函数,如果该函数执行失败,则应该返回 `ErrRequeue` 类型的错误,这时该对象会被**重新加回** FIFO,后续可以再次被弹出处理。
161
+
Pop 先从弹出队列(f.queue)移除对象,然后从对象缓存(f.items)中删除对象,接着调用 process 函数,如果该函数执行失败,则应该返回 `ErrRequeue` 类型的错误,这时该对象会被**重新加回** FIFO,后续可以再次被弹出处理。
162
162
163
-
`Pop()` 是在对 FIFO 加锁的情况下调用传入的 process 函数,所以可以在多个 goroutine 中**并发调用**`Pop()` 方法。
163
+
`Pop()` 是在对 FIFO 加锁的情况下调用传入的 process 函数,所以可以在多个 goroutine 中**并发调用**`Pop()` 方法。
0 commit comments