MemoryStoreQueue
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Bietet Zugriff auf eine Warteschlange innerhalb von MemoryStore.Eine Warteschlange ist eine Datenstruktur, die vorübergehende Speicherung für beliebige Elemente bietet (bis zur maximalen Elementgröße -- siehe MemoryStore-Grenzen ).Jedes Queue-Element hat eine numerische Priorität: MemoryStore holt zuerst Elemente mit höherer Priorität aus der Warteschlange und holt dann Elemente mit derselben Priorität in der Reihenfolge der Hinzufügung ab.
Artikel in der Warteschlange können optional so eingestellt werden, dass sie nach einer bestimmten Zeit ablaufen.Abgelaufene Elemente verschwinden einfach aus der Warteschlange, als wären sie nie hinzugefügt worden.
Zusammenfassung
Methoden
Fügt einem Element in die Warteschlange hinzu.
Holen Sie sich die Größe der Warteschlange.
Lesen Sie einen oder mehrere Artikel aus der Warteschlange.
Entfernt einen Artikel oder Artikel, die zuvor aus der Warteschlange gelesen wurden.
Eigenschaften
Methoden
AddAsync
Parameter
Rückgaben
ReadAsync
Parameter
Rückgaben
Code-Beispiele
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
Parameter
Rückgaben
Code-Beispiele
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