MemoryStoreQueue

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Bez replikacji

Dostarcza dostęp do konsoli w MemoryStore. Konsola jest strukturą danych, która dostarcza tymczasowe przechowywanie dla dowolnych pozycji (maksymalny rozmiar pozycji – patrz Limitowanie MemoryStore). Każdy pozycji konsoli ma priorytet liczbowy: MemoryStore odczytuje pozycje z wyższym priorytetem z konsoli pierwszy, a odczytuje pozycje z tego samego priorytetu w kolejności dodawania.

Przedmioty w kolejce mogą być opcjonalnie ustawione na wygasanie po pewnym czasie. Wygasłe przedmioty po prostu znikają z kolejki, jakby nie zostały nigdy dodane.

Podsumowanie

Metody

Właściwości

Metody

AddAsync

void
Wynik

Dodaje pozycję do kolejki.

Parametry

value: Variant

Wartość przedmiotu do dodania do kolejki.

expiration: number

Czas wygasania przedmiotu, w sekundach, po którym przedmiot zostanie automatycznie usunięty z kodu.

priority: number

Priorytet przedmiotu. Przedmioty o większym priorytecie są odczytywane z koszyku przedmiotów przed przedmiotami o niższym priorytecie.

Wartość domyślna: 0

Zwroty

void

ReadAsync

Wynik

Czyta jeden lub więcej pojedynczych pozycji z kolejki jako jedną lub więcej operacji atomowych.

Ten metod nie automatycznie usuwa zwróconych pozycji z koszyka, ale sprawia, że są niewidoczne dla innych wezwania ReadAsync przez okres czasu wygasania niewidzialności. Pozycje muszą być wyraźnie usunięte z koszyka z MemoryStoreQueue:RemoveAsync() przed wygasнием czasu wygaszenia niewidzialności. Domyślny czas wygaszenia wynosi 30 se

Parametry

count: number

Liczba pozycji do przeczytane. Maksymalna wartość tego parametru to 100.

allOrNothing: bool

Kontroluje zachowanie metody w przypadku, gdy kolejka ma mniej niż count pozycji: jeśli ustawiono na fałszywy, metoda zwraca wszystkie dostępne pozycje; jeśli ustawiono na prawdziwy, nie zwraca żadnych pozycji. Domyślną wartością jest fałszywy.

Wartość domyślna: false
waitTimeout: number

Czas, w sekundach, dla którego metoda będzie czekać, jeśli wymaganą liczbę pozycji nie jest natychmiastowo dostępna w kolejce. Czytania są próbowane co dwa sekundy w tym okresie. Ten parametr można ustawić na zero, aby nie wykonywać czekania. Jeśli ten parametr nie jest ustawiony lub ustawiony na -1, metoda będzie czekać w nieokreślonym czasie.

Wartość domyślna: -1

Zwroty

Tup z dwóch elementów. Pierwszy element to maszyna przecinków czytanych z konsoli. Drugi element to identyfikator maszyny przecinków, który powinien być przekazany do MemoryStoreQueue:RemoveAsync() , aby stale usunąć te pozycje z konsoli.

Przykłady kodu

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
Wynik

Usuwa przedmiot lub przedmioty wcześniej czytane z konsoli. Ten metod używa identyfikatora zwróconego przez MemoryStoreQueue:ReadAsync(), aby zidentyfikować przedmioty do usuwać, wyjmować. Jeśli zostanie wywołany po wygasaniu czasu nieaktywności, wezwanie nie ma efektu.

Parametry

id: string

Określa przedmioty do usuwać. Użyj wartości zwróconej przez MemoryStoreQueue:ReadAsync() .


Zwroty

void

Przykłady kodu

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

Zdarzenia