Queue della memoria del negozio

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Un Queue è una struttura dati lineare con una collezione di elementi che segue il principio first-in-first-out (FIFO) o priorizza gli elementi in base a criteri predefiniti. I memorie store supportano due tipi diQueue, il FIFO 1>regolari queue1> e 4>que

Le code di memoria sono utili per il processing di ordine basato sui criteri e per memorizzare informazioni utente, come skill level, per facilitare la matchmaking basata sui criteri desiderati. Ad esempio, puoi aggiungere un luogo della lobby come punto di partenza della tua esperienza, utilizzare le code di memoria come un sistema di storage delle informazioni utente centralizzato accessibile da più server, gestire l'ordine di posizionamento degli utenti usando le code e teleportare l'utente che ha

Ottenere una coda

Per ottenere una coda, chiama MemoryStoreService:GetQueue() con un nome , che è globale all'interno dell'esperienza per qualsiasi script per Accesso, e un opzionale timer invisibility in secondi, che impedisce il processo duplicato della stessa coda dell'Articolo. Il timer invisibility è 30 secondi per impostazione predefinita se lo lasci vuoto come il seguente esempio

Ottenere una coda vuota

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

Quando una coda elabora un oggetto in esso, l'invisibilità timer si applica all'Articolo, rendendolo invisibile dal essere elaborato da altri server, poiché più server possono aggiornare la coda contemporaneamente. Anche se è previsto che completi entrambe le operazioni di lettura e rimozione per un oggetto durante la durata dell'invisibilità, se si Si verificanoun errore che

Dopo aver ottenuto una coda, chiama una delle seguenti funzioni per leggere o scrivere dati in essa:

FunzioneAzione
MemoryStoreQueue:AddAsync()Aggiungi un nuovo oggetto alla coda.
MemoryStoreQueue:ReadAsync()Leggi uno o più elementi dalla coda come un'operazione singola.
MemoryStoreQueue:RemoveAsync()Rimuovi uno o più oggetti precedentemente letti dalla coda.

Aggiungere dati

Per aggiungere un nuovo elemento alla coda, chiama MemoryStoreQueue:AddAsync() con il valore dell'elemento, un tempo di scadenza in secondi e una priorità opzionale dell'Articolo. Se vuoi mantenere la tua coda nella sequenza FIFO, puoi lasciare la priorità vuota o passare 0 .

Aggiungere dati a una coda

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

Lettura e rimozione dei dati

Per leggere uno o più elementi dalla coda contemporaneamente, chiama MemoryStoreQueue:ReadAsync() , che restituisce un id che rappresenta l'Articolodi lettura. Quando hai finito di elaborare gli elementi, chiama immediatamente Class

Leggere e rimuovere i dati dalla coda con 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
-- Coda di elaborazione
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