Skip to content

MemoryStoreQueueAddOptions

概览

字段
KindData · 数据 Data
Realmserver

MemoryStoreQueueAddOptions 用于配置向内存存储队列添加数据时的可选行为,支持设置条目过期时间与存在性前置条件。通过设置 MSXX 或 MSNX 字段,可控制仅在队列存在或不存在时才执行添加操作;EX、PX、EXAT、PXAT 字段则允许以秒或毫秒为单位指定条目的生存时间。

适用场景

在调用 MemoryStoreQueue:AddAsync 时,若需要为添加的条目设置过期时间或添加存在性检查条件,可创建 MemoryStoreQueueAddOptions 实例并传入。例如,在排行榜数据更新场景中,可设置 PX 字段让条目在指定毫秒后自动过期。

使用要点

通过 MemoryStoreQueueAddOptions.New() 或 MemoryStoreQueueAddOptions() 创建配置对象,然后设置所需字段(如 MSXX、PX 等),最后将其作为参数传递给 MemoryStoreQueue:AddAsync 方法。

注意事项

该类型只作为 Queue:AddAsync 的配置参数使用。EX、PX、EXAT、PXAT 表示不同单位或形态的过期时间,一次写入只选择其中一种;所有字段默认 nil 时采用运行时默认行为。

代码示例

设置队列项过期时间

lua
-- @runtime server
local Task = game:GetService("Task")
Task:Spawn(function()
    local MemoryStoreService = game:GetService('MemoryStoreService')
    local queue = MemoryStoreService:GetQueue('match_queue', 30)

    local options = MemoryStoreQueueAddOptions.New()
    options.EX = 120
    local itemId = queue:AddAsync('ticket:1001', 0, options)
    print('入队 itemId:', itemId)
end)

属性 (6)

Name类型默认值说明
MSXXBool-仅当整个 MemoryStore 存在时才执行添加操作。
MSNXBool-仅当整个 MemoryStore 不存在时才执行添加操作。
EXInt-以秒为单位的生存时间(TTL),用于设置添加的数据项在队列中的存活时长。
PXInt-以毫秒为单位的生存时间(TTL),用于设置添加的数据项在队列中的存活时长。
EXATInt-以秒为单位的绝对生存时间(Unix 时间戳),用于设置数据项在指定时刻过期。
PXATInt-以毫秒为单位的绝对生存时间(Unix 时间戳),用于设置数据项在指定时刻过期。

函数 (1)

New

签名:New() -> MemoryStoreQueueAddOptions

创建一个新的 MemoryStoreQueueAddOptions 实例,用于配置向 MemoryStoreQueue 添加数据时的选项。

返回值 MemoryStoreQueueAddOptions

示例代码

构造队列写入选项

lua
-- @runtime server
local options = MemoryStoreQueueAddOptions.New()
options.EX = 120  -- 秒;EX 与 PX/EXAT/PXAT 只选一种
print('队列项存活秒数:', options.EX)