Passer au contenu principal

Déplacer atomiquement un élément de file (LCC.kvdb.queue.move)

Déclaration​

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

Paramètres​

  • from_name
    Type chaîne, nom de la file source (non vide, 256 octets au maximum)
  • pop
    Type chaîne, facultatif ; côté de retrait de la file source, "front" ou "back", "front" par défaut
  • to_name
    Type chaîne, nom de la file cible (non vide, 256 octets au maximum)
  • push
    Type chaîne, facultatif ; côté d'insertion de la file cible, "front" ou "back", "back" par défaut
  • timeout
    Type numérique, facultatif ; délai d'attente de la demande en secondes, 60 par défaut

Valeurs de retour​

  • value
    Type chaîne, élément déplacé ; nil si la file source est vide
  • err
    Type chaîne ou nil, renvoie 'not found' en cas d'échec ou lorsque la file source est vide

Description​

Retire atomiquement un élément de la file source et l'insère dans la file cible.
Convient au transfert de tâches par préemption et évite les courses entre accès concurrents.
Une file source vide renvoie nil, 'not found'.

Exemple​

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