Una cola es una estructura de datos lineales con una colección de elementos que siguen el principio de Primero en-primero-en o priorizan los elementos según criterios predeterminados. Los almacenes de memoria soportan dos tipos de cola, la 1>cola regular1> y la <
Las colas de almacenamiento de memoria son útiles para el procesamiento y el almacenamiento de información de usuarios, como los niveles de habilidad, para facilitar el emparejamiento basado en los criterios deseados. Por ejemplo, puede agregar un lugar de lobby como el lugar de inicio de su experiencia, usar las colas de almacenamiento de memoria como un sistema de almacenamiento de información centralizado accesible por múltiples servidores, administrar el orden de colocación de los
Obtener una cola
Para obtener una cola, llama a MemoryStoreService:GetQueue() con un nombre , que es global dentro de la experiencia para que cualquier script acceso, y un tiempo de espera opcional de invisibilidad en segundos que evita el procesamiento duplicado del mismo objetode cola. El tiempo de espera de invisibilidad es 30 segundos por defecto si deja el campo vacío como el siguiente ejemplo de código.
Obtener una cola vacía
local MemoryStoreService = game:GetService("MemoryStoreService")local queue = MemoryStoreService:GetQueue("Queue1")
Cuando una cola está procesando un artículo en él, el tiempo límite de invisibilidad se aplica al objeto, haciéndolo invisible de ser procesado por otros servidores, ya que múltiples servidores pueden actualizar el tiempo límite de invisibilidad durante la duración del tiempo de invisibilidad. Aunque se espera que completar ambas operaciones de lectura y eliminación para un artículo durante la dur
Después de obtener una cola, llame a cualquiera de las siguientes funciones para leer o escribir datos en ella:
Función | Acción |
---|---|
MemoryStoreQueue:AddAsync() | Añadir nuevo artículo a la cola. |
MemoryStoreQueue:ReadAsync() | Leer uno o más elementos de la cola como una operación única. |
MemoryStoreQueue:RemoveAsync() | Elimina uno o más elementos leídos anteriormente de la cola. |
Agregar datos
Para agregar un nuevo artículo a la cola, llame a MemoryStoreQueue:AddAsync() con el valor del artículo, un tiempo de caducidad en segundos y una prioridad opcional del objeto. Si desea mantener su cola en la secuencia FIFO, puede dejar la prioridad vacía o pasar 0 .
Agregar datos a una cola
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
Leer y eliminar datos
Para leer uno o más elementos de la cola a la vez, llama a MemoryStoreQueue:ReadAsync(), que devuelve un id que representa el objetode lectura. Cuando termines de procesar los elementos, inmediatamente llama a Class.MemoryStore
Leer y eliminar datos de la cola con bucle
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
-- Ciclo de procesamiento de cola
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