MemoryStoreQueue

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Nicht repliziert

Bietet Zugriff auf eine Warteschlange innerhalb von MemoryStore. Eine Warteschlange ist eine Datenstruktur, die temporäre Speicher für beliebige Gegenstände (bis zum maximalen Gegenstandsgrößen -- siehe MemoryStore Limits ) bietet. Jeder Warteschlange-Artikel hat eine nummerische Priorität: MemoryStore ruft Gegenstände mit höherer Priorität aus der Warteschlange ab und ruft Gegenstände mit derselben Priorität in der Reihenfolge hinzu.

Items in der Warteschlange können optional nach einer bestimmten Zeit abgelaufen werden. Abgelaufene Gegenstände verschwinden einfach aus der Warteschlange, als ob sie nie hinzugefügt wurden.

Zusammenfassung

Methoden

  • AddAsync(value : Variant,expiration : number,priority : number):void
    Angehalten

    Fügt einer Warteschlange einen Artikel hinzu.

  • ReadAsync(count : number,allOrNothing : bool,waitTimeout : number):Tuple
    Angehalten

    Lies einen oder mehrere Gegenstände aus der Warteschlange.

  • RemoveAsync(id : string):void
    Angehalten

    Entfernt einen Gegenstand oder mehrere Gegenstände, die zuvor aus der Warteschlange gelesen wurden.

Eigenschaften

Methoden

AddAsync

void
Angehalten

Fügt einer Warteschlange einen Artikel hinzu.

Parameter

value: Variant

Der Wert des Elements, der zur Warteschlange hinzugefügt werden soll.

expiration: number

Item-Expiry-Zeit, in Sekunden, nach der das Item automatisch aus der Warteschlange entfernt wird.

priority: number

Item-Priorität. Elemente mit höherer Item-Priorität werden aus der Warteschlange vor Elementen mit niedrigerer Item-Priorität abgerufen.

Standardwert: 0

Rückgaben

void

ReadAsync

Angehalten

Lädt einen oder mehrere Gegenstände aus der Warteschlange als eine einzige atomare Operation.

Diese Methode löscht nicht automatisch die zurückgegebenen Elemente aus der Warteschlange, aber macht sie für die Dauer des Unsichtbarkeitszeitlimits unsichtbar. Die Elemente müssen explizit aus der Warteschlange mit MemoryStoreQueue:RemoveAsync() entfernt werden, bevor der Unsichtbarkeitszeitlimit abläuft. Die Unsichtbarkeitszeitlimit-Standard beträgt 30 Sekunden, wenn ke

Parameter

count: number

Anzahl der zu gelesenElemente. Der maximale erlaubte Wert dieses Parameters ist 100.

allOrNothing: bool

Steuert das Verhalten der Methode im Falle, dass die Warteschlange weniger als count Elemente hat: Wenn auf falsch gesetzt, gibt die Methode alle verfügbaren Elemente zurück; Wenn auf wahr gesetzt, gibt sie keine Elemente zurück. Standardwert ist falsch.

Standardwert: false
waitTimeout: number

Die Dauer, in Sekunden, für die die Methode warten wird, wenn die erforderliche Anzahl von Artikeln nicht sofort in der Warteschlange verfügbar ist. Lesungen werden jede zwei Sekunden während dieser Zeit versucht. Dieser Parameter kann auf null gesetzt werden, um keinen Wartet zu zeigen. Wenn dieser Parameter nicht angegeben wird oder auf -1 gesetzt wird, wartet die Methode indefinitiv.

Standardwert: -1

Rückgaben

Ein Array von zwei Elementen. Das erste Element ist ein Array von Artikelwerten, die aus der Warteschlange gelesen werden. Das zweite Element ist ein String-Identifikator, der an MemoryStoreQueue:RemoveAsync() übergeben werden muss, um diese Elemente dauerhaft aus der Warteschlange zu entfernen.

Code-Beispiele

Using a MemoryStoreQueue

local MemoryStoreService = game:GetService("MemoryStoreService")
local DataStoreService = game:GetService("DataStoreService")
local queue = MemoryStoreService:GetQueue("PlayerQueue")
local dataStore = DataStoreService:GetDataStore("PlayerStore")
while true do
pcall(function()
-- wait for an item to process
local items, id = queue:ReadAsync(1, false, 30)
-- check if an item was retrieved
if #items > 0 then
-- mark the item as processed
dataStore:UpdateAsync(items[0], function(data)
data = data or {}
data.processed = 1
return data
end)
-- remove the item from the queue
queue:RemoveAsync(id)
end
end)
end

RemoveAsync

void
Angehalten

Entfernt einen Gegenstand oder mehrere Gegenstände, die zuvor aus der Warteschlange gelesen wurden. Dieser Methode verwendet die ID-Anzeige, die von MemoryStoreQueue:ReadAsync() zurückgegeben wird, um die zu entfernenden Gegenstände zu identifizieren. Wenn nach dem Ablauf des Unsichtbarkeits Timeouts aufgerufen wird, hat der Aufruf keinen Effekt.

Parameter

id: string

Identifiziert die zu löschenden Elemente. Verwenden Sie den Wert, der von MemoryStoreQueue:ReadAsync() zurückgegeben wird.


Rückgaben

void

Code-Beispiele

Using a MemoryStoreQueue

local MemoryStoreService = game:GetService("MemoryStoreService")
local DataStoreService = game:GetService("DataStoreService")
local queue = MemoryStoreService:GetQueue("PlayerQueue")
local dataStore = DataStoreService:GetDataStore("PlayerStore")
while true do
pcall(function()
-- wait for an item to process
local items, id = queue:ReadAsync(1, false, 30)
-- check if an item was retrieved
if #items > 0 then
-- mark the item as processed
dataStore:UpdateAsync(items[0], function(data)
data = data or {}
data.processed = 1
return data
end)
-- remove the item from the queue
queue:RemoveAsync(id)
end
end)
end

Ereignisse