Kolejka do pamięci

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Kolejka jest liniową strukturą danych z zbiórką przedmiotów, która jest albo pierwsza w pierwszym przypadku lub priorytetowa według ustalonego priorytetu lub 1>pierwsza1> w drugim przypadku. 4>

Kolejki pamięci są użyteczne do przetwarzania i przechowywania informacji użytkownika, takich jak poziomy umiejętności, aby ułatwić matchmaking oparty na Twoich preferowanych kryteriach. Na przykład możesz dodać miejsce startowe lobby jako punkt wyjścia swojego doświadczenia, użyć kolejek pamięci jako centralnego systemu przechowywania informacji użytkownika dostępnego z wiel

Zdobywanie kolejki

Aby uzyskać kolejkę, wezwij MemoryStoreService:GetQueue() z imieniem nazwa , które jest globalne w doświadczeniu dla każdego skryptu do uzyskania dostępu, i opcjonalnym time out invisibility w sekundach, co zapobiega duplikowanym przetwarzaniem tego samego przedmiotu kolejki. Time out invisibility jest 30 sek

Utworzenie pustej kolejki

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

Gdy w kolejce przetwarza się przedmiot, czas wygasa dla niego określony, aż do tego czasu określony przez inny serwer, ponieważ wiele serwerów może aktualizować kolejkę równocześnie. Chociaż jest to oczekiwane, aby ukończyć obie operacje czytania i usuwania dla przedmiotu podczas czasu

Po uzyskaniu kolejki wykonaj jedną z następujących funkcji, aby czytać lub zapisać dane w niej:

FunkcjaAkcja
MemoryStoreQueue:AddAsync()Dodaj nowy przedmiot do kolejki.
MemoryStoreQueue:ReadAsync()Przeczytaj jeden lub więcej pozycji z koszyka jako jedną operację.
MemoryStoreQueue:RemoveAsync()Usuń jeden lub więcej przedmiotów wcześniej przeczytanych z koszyka.

Dodawanie danych

Aby dodać nowy pozycion do kolejki, wezwij MemoryStoreQueue:AddAsync() z wartością pozycji, czasem wygasania w sekundach i opcjonalnym priorytetem przedmiot. Jeśli chcesz utrzymać swoją kolejkę w sekwencji FIFO, możesz pozostawić priorytet pusty lub przepustkę 0.

Dodawanie danych do kolejki

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

Czytanie i usuwanie danych

Aby przeczytać jeden lub więcej pozycji z listy na raz, wezwij MemoryStoreQueue:ReadAsync(), który zwraca id przedstawiające pozycję czytania. Gdy skończysz z przetwarzaniem pozycji

Czytanie i usuwanie danych z koszyka danych z pętlem

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
-- Pętla przetwarzania w kolejności
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