Memória de armazenamento de fila

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Uma fila de espera é uma estrutura de dados linear com uma coleção de itens que seguem o princípio de primeiro-in-first-out (FIFO) ou priorizam elementos com base em critérios pré-definidos. Armazenamento de memória suporta dois tipos de fila, o FIFO queens fil

As filas de armazenamento de memória são úteis para processamento baseado em ordem e armazenamento de informações do usuário, como níveis de habilidade, para facilitar a compilação baseada nos seus critérios desejados. Por exemplo, você pode adicionar um lugar de lobby como o local de partida inicial de sua experiência, usar filas de armazenamento de memória como um sistema de armazenamento de informações centralizado acessível por vários servidores, gerenciar a ord

Comando de Entrada

Para obter uma fila, chame MemoryStoreService:GetQueue() com um nome , que é global dentro da experiência para qualquer script acesso, e um tempo limite de invisibilidade em segundos, o que impede a processagem duplicada do mesmo item de fila. O tempo limite de invisibilidade é 30 segundos por padrão se você deixar vazio como o seguinte exemplo de código.

Obtendo uma Fila Vazia

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

Quando uma fila processa um item nela, o tempo limite de invisibilidade aplica-se ao item, tornando-o invisível de ser processado por outros servidores, pois vários servidores podem atualizar o tempo limite de invisibilidade durante a duração do tempo limite de invisibilidade. Embora seja esperado que todas as leituras e remoções de um item durante a duração do tempo limite

Depois de obter uma fila, chame qualquer uma das seguintes funções para ler ou escrever dados nela:

FunçãoAção
MemoryStoreQueue:AddAsync()Adicionar um novo item à fila.
MemoryStoreQueue:ReadAsync()Leia um ou mais itens da fila como uma operação única.
MemoryStoreQueue:RemoveAsync()Remover um ou mais itens lidos anteriormente da fila.

Adicionando Dados

Para adicionar um novo item à fila, chame MemoryStoreQueue:AddAsync() com o valor do item, um tempo de expiração em segundos e uma prioridade opcional do item. Se você quiser manter sua fila na sequência FIFO, você pode deixar a prioridade vazia ou passar 0 .

Adicionando Dados à uma Fila

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

Lendo e Removendo Dados

Para ler um ou mais itens da fila de uma vez, chame MemoryStoreQueue:ReadAsync(), que retorna um id representando o item de leitura. Quando você terminar de processar itens, imediatamente chame Class.MemoryStoreQueue:

Lendo e Removendo Dados da Fila com 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
-- Loop de processo de fila
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