Speicher-Store-Warteschlange

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

Eine Warteschlange ist eine linke Datenstruktur mit einer Sammlung von Elementen, die entweder folgt dem ersten-in-erst-aus-Prinzip (FIFO) oder nach vordefinierten Kriterien Elemente priorisiert. Speicher-Stores unterstützen zwei Arten von Warteschlangen, die regelmäßige FIFO-

Speicherplatz-Warteschlange ist nützlich für die Ordnungs-basierte Verarbeitung und Speicherung von Benutzerinformationen, wie Skill-Level, um das Matchmaking basierend auf Ihren gewünschten Kriterien zu erleichtern. Zum Beispiel können Sie einen Lobbyplatz als Startplatz Ihres Erlebnisses hinzufügen, den Speicherplatz-Warteschlange als zentralisierten Benutzer-Information-Speicher zugänglich machen, den Platzierungsordner von Benutzern

Eine Warteschlange erstellen

Um eine Warteschlange zu erhalten, rufen Sie MemoryStoreService:GetQueue() mit einem Namen auf, der global innerhalb der Erfahrung für jedes Skript Zugriffist, und einem optionalen Invisibility Timeout in Sekunden, der das duplizierte Verarbeiten desselben Artikelverhindert. Das Invisibility Timeout beträgt standardmäßig 30 Sekunden, wenn Sie es leer wie das folgende

Eine leere Warteschlange erhalten

local MemoryStoreService = game:GetService("MemoryStoreService")
local queue = MemoryStoreService:GetQueue("Queue1")

Wenn eine Warteschlange ein Element in ihm verarbeitet, gilt der Unsichtbaritätszeitlimit für das Artikel, so dass es unsichtbar wird, wenn es von anderen Servern verarbeitet wird, da mehrere Server die Warteschlange gleichzeitig aktualisieren können. Obwohl es erwartet wird, dass alle Elemente in einer Warteschlange während der Unsichtbaritätszeitlimit-Dauer noch verarbeitet werden können,

Nachdem du eine Warteschlange erhalten hast, rufe eine der folgenden Funktionen auf, um Daten in ihr zu lesen oder zu schreiben:

FunktionAktion
MemoryStoreQueue:AddAsync()Füge einem neuen Element in der Warteschlange ein.
MemoryStoreQueue:ReadAsync()Lesen Sie einen oder mehrere Gegenstände aus der Warteschlange als eine einzige Operation.
MemoryStoreQueue:RemoveAsync()Entferne einen oder mehrere Artikel vorher aus der Warteschlange.

Daten hinzufügen

Um einen neuen Gegenstand zur Warteschlange hinzuzufügen, rufe MemoryStoreQueue:AddAsync() mit dem Gegenstandswert, einer Verfallszeit in Sekunden und einer optionalen Priorität des Artikel. Wenn Sie Ihre Warteschlange in der FIFO-Reihenfolge halten möchten, können Sie die Priorität leer lassen oder 0 .

Daten zu einer Warteschlange hinzufügen

local MemoryStoreService = game:GetService("MemoryStoreService")
local queue = MemoryStoreService:GetQueue("Queue1")
local addSuccess, addError = pcall(function()
queue:AddAsync("User_1234", 30, 1)
end)
if not addSuccess then
warn(addError)
end

Lesen und entfernen von Daten

Um einen oder mehrere Gegenstände aus der Warteschlange auf einmal zu lesen, rufen Sie MemoryStoreQueue:ReadAsync() auf, wobei ein id darstellt, das den Leseausschnitt repräsentiert. Wenn Sie mit dem Verarbeiten von Gegen

Lesen und Entfernen von Daten aus der Warteschlange mit Loop

local MemoryStoreService = game:GetService("MemoryStoreService")
local queue = MemoryStoreService:GetQueue("Queue1")
local addSuccess, addError = pcall(function()
queue:AddAsync("User_1234", 30, 1)
end)
if not addSuccess then
warn(addError)
end
-- Warteschlange verarbeiten Loop
while true do
local readSuccess, items, id = pcall(function()
return queue:ReadAsync(1, false, 30)
end)
if not readSuccess then
task.wait(1)
elseif #items > 0 then
print(items, id)
local removeSuccess, removeError = pcall(function()
queue:RemoveAsync(id)
end)
if not removeSuccess then
warn(removeError)
end
end
end