MemoryStoreQueue

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

만들 수 없음
복제되지 않음

MemoryStore 내의 큐에 액세스할 수 있습니다. 큐는 임의의 항목(최대 항목 크기 참조 - MemoryStore 제한)에 대한 임시 저장을 제공하는 데이터 구조입니다. 각 큐 항목에는 숫자 우선 순위가 있으며, 메모리 스토리지는 첫 번째로 더 높은 우선 순위를 가진 항목을

대기열에 있는 항목은 특정 시간 후에 만료할 수 있습니다. 만료된 항목은 처음에 추가된 것과 같이 대기열에서 사라집니다.

요약

메서드

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

    대기열에 항목을 추가합니다.

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

    대기열에서 하나 이상의 항목을 읽습니다.

  • RemoveAsync(id : string):void
    생성

    이전에 큐에서 읽은 항목이나 항목을 제거합니다.

속성

메서드

AddAsync

void
생성

대기열에 항목을 추가합니다.

매개 변수

value: Variant

대기열에 추가할 항목의 값입니다.

expiration: number

아이템 만료 시간, 즉 아이템이 자동으로 대기열에서 제거됩니다.

priority: number

아이템 우선 순위. 우선 순위가 높은 아이템은 우선 순위가 낮은 아이템보다 먼저 대기열에서 검색됩니다.

기본값: 0

반환

void

ReadAsync

생성

큐에서 하나 이상의 항목을 단일 원자 작업으로 읽습니다.

이 메서드는 대기열에서 반환된 항목을 자동으로 삭제하지 않지만 적절한 ReadAsync 호출의 기간 동안 다른 항목을 보이지 않게 합니다. 항목은 MemoryStoreQueue:RemoveAsync() 에 명시적으로 제거되어야 합니다. MemoryStoreService:GetQueue()

매개 변수

count: number

읽음항목의 수. 이 매개 변수의 최대 값은 100입니다.

allOrNothing: bool

대기열에 아이템이 count 이하인 경우 메서드 동작을 제어합니다. set to false 메서드는 모든 사용 가능한 항목을 반환합니다. set to true 메서드는 아이템을 반환하지 않습니다. 기본값은 false입니다.

기본값: false
waitTimeout: number

필요한 항목 수가 즉시 대기열에 없는 경우 메서드가 기다리는 시간(초)입니다. 이 기간 동안 읽기는 2초마다 시도됩니다. 이 매개 변수를 0으로 설정하여 대기하지 않음을 나타낼 수 있습니다. 이 매개 변수를 0으로 설정하거나 -1로 설정하면 메서드는 즉시 대기하지 않습니다.

기본값: -1

반환

두 요소의 튜플. 첫 번째 요소는 큐에서 읽은 아이템 값 배열입니다. 두 번째 요소는 영구적으로 이 항목을 큐에서 제거하려면 MemoryStoreQueue:RemoveAsync() 에 지정된 문자열 식별자입니다.

코드 샘플

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
생성

이전에 큐에서 읽은 항목이나 항목을 제거합니다. 이 메서드는 MemoryStoreQueue:ReadAsync() 에서 반환하는 식별자를 사용하여 제거할 항목을 식별합니다. 투명성 타임아웃이 만료된 후에 호출하면 호출에 효과가 없습니다.

매개 변수

id: string

삭제할 항목을 식별합니다. MemoryStoreQueue:ReadAsync()에 반환된 값을 사용하십시오.


반환

void

코드 샘플

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

이벤트