Ir para o conteúdo principal

Mover atomicamente um elemento da fila (LCC.kvdb.queue.move)

Declaração​

value, err = LCC.kvdb.queue.move(from_name, pop?, to_name, push?, timeout?)

Parâmetros​

  • from_name
    Tipo string; nome da fila de origem (não vazio, no máximo 256 bytes)
  • pop
    Tipo string, opcional; direção de retirada da fila de origem, "front" ou "back", padrão "front"
  • to_name
    Tipo string; nome da fila de destino (não vazio, no máximo 256 bytes)
  • push
    Tipo string, opcional; direção de inserção na fila de destino, "front" ou "back", padrão "back"
  • timeout
    Tipo number, opcional; tempo limite da solicitação (em segundos), padrão 60

Valor de retorno​

  • value
    Tipo string; elemento movido, ou nil quando a fila de origem está vazia
  • err
    Tipo string ou nil; retorna 'not found' em caso de falha ou quando a fila de origem está vazia

Descrição​

Retira atomicamente um elemento da fila de origem e o insere na fila de destino.
É adequado para implementar a transferência preemptiva de tarefas e evitar disputas de concorrência.
Quando a fila de origem está vazia, retorna nil, 'not found'.

Exemplo​

local value, err = LCC.kvdb.queue.move("待处理", "front", "进行中", "back")
if value then
print("领取任务:", value)
end