MemoryStoreQueue

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Non répliqué

Fournit un accès à une file d'attente dans le stockage de mémoire. Une file d'attente est une structure de données qui fournit un stockage temporaire pour des éléments arbitraires (taille maximale de l'élément -- voir limites de stockage de mémoire ). Chaque élément de la file d'attente a une priorité numérique : le stockage de mémoire récupère les éléments avec une priorité plus élevée d'abord, et il récupère les éléments avec la même priorité dans l'ordre de l'ajout

Les éléments dans la file d'attente peuvent être optionnellement configurés pour expirer après un certain lapse de temps. Les éléments expirés disparaissent de la file d'attente comme s'ils n'étaient jamais ajoutés.

Résumé

Méthodes

  • AddAsync(value : Variant,expiration : number,priority : number):void
    Rendement

    Ajoute un élément à la file d'attente.

  • ReadAsync(count : number,allOrNothing : bool,waitTimeout : number):Tuple
    Rendement

    Lit un ou plusieurs éléments de la file d'attente.

  • RemoveAsync(id : string):void
    Rendement

    Supprime un élément ou des éléments lus précédemment de la file d'attente.

Propriétés

Méthodes

AddAsync

void
Rendement

Ajoute un élément à la file d'attente.

Paramètres

value: Variant

La valeur de l'élément à ajouter à la file d'attente.

expiration: number

Temps d'expiration de l'article, en secondes, après lequel l'article sera automatiquement supprimé de la file d'attente.

priority: number

Priorité des éléments. Les éléments avec une plus grande priorité sont récupérés dans la file d'attente avant les éléments avec une plus faible priorité.

Valeur par défaut : 0

Retours

void

ReadAsync

Rendement

Lit un ou plusieurs éléments de la file d'attente comme une seule opération atomique.

Cette méthode ne supprime pas automatiquement les éléments retournés de la file d'attente, mais les rend invisibles pour les autres appels ReadAsync pendant la période de l'invisibilité. Les éléments doivent être explicitement retirés de la file d'attente avec MemoryStoreQueue:RemoveAsync() avant que l'invisibilité expire. La valeur d'invisibilité par défaut est de 30 secondes, sauf si une autre vale

Paramètres

count: number

Nombre d'éléments à lu. La valeur maximale de ce paramètre est 100.

allOrNothing: bool

Contrôle le comportement de la méthode dans le cas où la file d'attente a moins de count éléments : si la valeur est réglée sur false, la méthode renvoie tous les éléments disponibles ; si la valeur est réglée sur true, elle renvoie aucun élément. La valeur par défaut est false.

Valeur par défaut : false
waitTimeout: number

La durée, en secondes, pendant laquelle la méthode attendra si le nombre requis d'objets n'est pas immédiatement disponible dans la file d'attente. Les tentatives de lecture sont effectuées toutes les deux secondes pendant cette période. Ce paramètre peut être réglé sur zéro pour indiquer qu'il n'y a pas d'attente. Si ce paramètre n'est pas fourni ou réglé sur -1, la méthode attendra infiniment.

Valeur par défaut : -1

Retours

Un tableau de deux éléments. Le premier élément est un tableau de valeurs d'objet lues de la file d'attente. Le deuxième élément est un identifiant de chaîne qui doit être passé à MemoryStoreQueue:RemoveAsync() pour supprimer définitivement ces éléments de la file d'attente.

Échantillons de code

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
Rendement

Supprime un élément ou des éléments lus précédemment de la file d'attente. Ce méthode utilise l'identifiant renvoyé par MemoryStoreQueue:ReadAsync() pour identifier les éléments à retirer. Si appelé après l'expiration du délai d'invisibilité, l'appel n'a aucun effet.

Paramètres

id: string

Identifie les éléments à supprimer. Utilisez la valeur renvoyée par MemoryStoreQueue:ReadAsync() .


Retours

void

Échantillons de code

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

Évènements