MemoryStoreQueue

Mostrar obsoleto

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

Não criável
Não replicado

Proporciona acceso a una cola dentro de MemoryStore. Una cola es una estructura de datos que proporciona almacenamiento temporal para cualquier artículo (hasta el tamaño máximo del artículo -- ver Límites de MemoryStore). Cada artículo de cola tiene una prioridad numérica: el almacén de memoria recupera los elementos con mayor prioridad de la cola primero, y recupera los elementos con la misma prioridad en orden de adición.

Los elementos en la cola se pueden configurar opcionalmente para expirar después de un cierto período de tiempo. Los elementos expirados simplemente desaparecen de la cola como si nunca se hayan agregado.

Resumo

Métodos

Propriedades

Métodos

AddAsync

void
Rendimentos

Añade un artículo a la cola.

Parâmetros

value: Variant

El valor del artículo para agregar a la cola.

expiration: number

Tiempo de caducidad del artículo, en segundos, después de lo cual el artículo se eliminará automáticamente de la cola.

priority: number

Prioridad de los elementos. Los elementos con mayor prioridad se recuperan de la cola antes que los elementos con menor prioridad.

Valor Padrão: 0

Devolução

void

ReadAsync

Rendimentos

Lee uno o más elementos de la cola como una sola operación atómica.

Este método no elimina automáticamente los elementos devueltos de la cola, pero los hace invisibles para otras llamadas ReadAsync durante el período de tiempo de invisibilidad. Los elementos deben ser eliminados explícitamente de la cola con MemoryStoreQueue:RemoveAsync() antes de que el tiempo de invisibilidad caduque. El tiempo de invisibilidad predeterminado es de 30 segundos a menos que se proporcionara un valor difer

Parâmetros

count: number

Número de elementos para leído. El valor máximo permitido de este parámetro es 100.

allOrNothing: bool

Controla el comportamiento del método en el caso de que la cola tenga menos de count artículos: si se establece a falso, el método devuelve todos los artículos disponibles; si se establece a verdadero, no devuelve artículos. El valor predeterminado es falso.

Valor Padrão: false
waitTimeout: number

La duración, en segundos, por la cual el método esperará si el número requerido de artículos no está inmediatamente disponible en la cola. Las lecturas se intentan cada dos segundos durante este período. Este parámetro se puede establecer a cero para indicar no hay espera. Si este parámetro no se proporciona o se establece a -1, el método esperará indefinidamente.

Valor Padrão: -1

Devolução

Un tutorial de dos elementos. El primer elemento es un conjunto de valores de elementos leídos desde la cola. El segundo elemento es un identificador de cadena que se debe pasar a MemoryStoreQueue:RemoveAsync() para eliminar permanentemente estos elementos de la cola.

Amostras de código

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
Rendimentos

Elimina un elemento o elementos anteriores de la cola. Este método usa el identificador devuelto por MemoryStoreQueue:ReadAsync() para identificar los elementos para eliminar. Si se llama después de que el tiempo de invisibilidad haya expirado, la llamada no tiene efecto.

Parâmetros

id: string

Identifica los elementos para eliminar. Usa el valor devuelto por MemoryStoreQueue:ReadAsync() .


Devolução

void

Amostras de código

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

Eventos