Zum Hauptinhalt springen

Queue-Elemente atomar verschieben (LCC.kvdb.queue.move)

Deklaration​

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

Parameter​

  • from_name
    String. Name der Quellqueue (nicht leer, maximal 256 Byte).
  • pop
    String, optional. Entnahmerichtung der Quellqueue, "front" oder "back"; Standard "front".
  • to_name
    String. Name der Zielqueue (nicht leer, maximal 256 Byte).
  • push
    String, optional. Einfügerichtung der Zielqueue, "front" oder "back"; Standard "back".
  • timeout
    Zahl, optional. Anfrage-Timeout in Sekunden, Standard 60.

Rückgabewerte​

  • value
    String. Verschobener Eintrag; bei leerer Quellqueue nil.
  • err
    String oder nil. Gibt bei leerer Quellqueue oder fehlgeschlagenem Vorgang 'not found' zurück.

Hinweise​

Entnimmt atomar ein Element aus der Quellqueue und stellt es in die Zielqueue.
Ideal für die Übergabe von Aufgaben ohne Race Conditions.
Bei leerer Quellqueue wird nil, 'not found' zurückgegeben.

Beispiel​

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