MemoryStoreQueue

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Direplikasi

Menyediakan akses ke antrian dalam MemoryStore. Antrian adalah struktur data yang menyediakan penyimpanan sementara untuk item apa pun (sampai dengan ukuran item maksimum -- lihat Memori Toko Batas ). Setiap item antrian memiliki prioritas numerik: MemoriStore mengambil item dengan prioritas lebih tinggi dari antrian pertama, dan itu mengambil Item dengan prioritas yang sama dalam urutan tambahan.

Item dalam antrian dapat diatur untuk kedaluwarsa setelah jumlah waktu tertentu. Item yang kedaluwarsa hanya menghilang dari antrian seolah-olah mereka tidak pernah ditambahkan.

Rangkuman

Metode

Properti

Metode

AddAsync

void
Hasil

Menambahkan item ke antrian.

Parameter

value: Variant

Nilai item untuk ditambahkan ke antrian.

expiration: number

Waktu kedaluwarsa item, dalam detik, setelah itu item akan dihapus secara otomatis dari antrian.

priority: number

Prioritas item. Item dengan prioritas tinggi diambil dari antrian sebelum item dengan prioritas lebih rendah.

Nilai Default: 0

Memberikan nilai

void

ReadAsync

Hasil

Membaca satu atau lebih item dari antrian sebagai operasi atomik tunggal.

Metode ini tidak secara otomatis menghapus item yang dikembalikan dari antrian tetapi membuat mereka tidak terlihat oleh panggilan ReadAsync lainnya selama periode waktu ketidakvisibilan. Item harus dihapus dari antrian dengan MemoryStoreQueue:RemoveAsync() sebelum waktu ketidakvisibilan default berakhir. Waktu ketidakvis

Parameter

count: number

Jumlah item yang akan dilihat.Nilai maksimum dari parameter ini adalah 100.

allOrNothing: bool

Mengontrol perilaku metode dalam kasus antrian memiliki kurang dari count item: jika diatur ke false, metode mengembalikan semua item yang tersedia; jika diatur ke true, itu tidak mengembalikan item apa pun.Nilai default adalah false.

Nilai Default: false
waitTimeout: number

Durasi, dalam detik, untuk metode yang akan menunggu jika jumlah item yang diperlukan tidak tersedia segera dalam antrian. Pembacaan dilakukan setiap dua detik selama periode ini. parameter ini dapat diatur ke nol untuk menunjukkan tidak ada tunggu. Jika parameter ini tidak diberikan atau diatur ke -1, metode akan menunggu secara tidak langsung.

Nilai Default: -1

Memberikan nilai

Sebuah tuple dua elemen. Elemen pertama adalah array nilai item yang dibaca dari antrian. Elemen kedua adalah identifikasi string yang harus diberikan kepada MemoryStoreQueue:RemoveAsync() untuk menghapus item ini dari antrian secara permanen.

Contoh Kode

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
Hasil

Menghapus item atau item sebelumnya dari antrian. Metode ini menggunakan identifikator yang dikembalikan oleh MemoryStoreQueue:ReadAsync() untuk mengidentifikasi item yang akan dihapus. Jika panggilan ini dijalankan setelah waktu batas invisibilitas berakhir, panggilan ini tidak berpengaruh.

Parameter

id: string

Mengidentifikasi item yang akan dihapus. Gunakan nilai yang dikembalikan oleh MemoryStoreQueue:ReadAsync() .


Memberikan nilai

void

Contoh Kode

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

Acara