如何在 tarantool 1.6 队列中获取剩余任务延迟时间

How to get the rest task delay time in tarantool 1.6 queue

我正在尝试使用 tarantool fifottl 队列在其中存储一些延迟任务。

我必须使用以下界面来存储任务:

queue.tube.tube_name:put({ some_key, 'some_data' }, { delay = 80 })

如何在不更改任务状态的情况下检索当前任务延迟?

简要说明: 使用 Queue API.

无法做到这一点

长答案: 此队列的基本规则之一是:"no one know about task, if it's not taken",因此违反此规则。

肮脏的技巧: 您可以从 Tarantool space:

获取此信息
local states = require('queue.abstract.state')

local state, time = *queue-instance*.space:get{*TASK_ID*}:unpack(2, 3)}

if state == states.DELAYED then
    -- task is delayed, so time in `time` is the right time
end