Mover atómicamente un elemento de cola (LCC.kvdb.queue.move)
Declaración
value, err = LCC.kvdb.queue.move(from_name, pop?, to_name, push?, timeout?)
Parámetros
- from_name
Tipo string; nombre de la cola de origen (no vacío, máximo256bytes) - pop
Tipo string, opcional; dirección de extracción de la cola de origen,"front"o"back", predeterminada"front" - to_name
Tipo string; nombre de la cola de destino (no vacío, máximo256bytes) - push
Tipo string, opcional; dirección de inserción de la cola de destino,"front"o"back", predeterminada"back" - timeout
Tipo numérico, opcional; tiempo de espera de la solicitud (segundos), predeterminado60
Valores devueltos
- value
Tipo string; elemento movido;nilcuando la cola de origen está vacía - err
Tipo string onil; si falla o la cola de origen está vacía, devuelve'not found'
Descripción
Extrae atómicamente un elemento de la cola de origen y lo inserta en la cola de destino.
Es adecuado para implementar la transferencia de tareas con toma de posesión y evitar condiciones de carrera.
Si la cola de origen está vacía, devuelvenil, 'not found'.
Ejemplo
local value, err = LCC.kvdb.queue.move("待处理", "front", "进行中", "back")
if value then
print("领取任务:", value)
end