如何在 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
我正在尝试使用 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