【问题标题】:How to get the rest task delay time in tarantool 1.6 queue如何在 tarantool 1.6 队列中获取剩余任务延迟时间
【发布时间】:2016-04-19 20:46:26
【问题描述】:

我正在尝试使用 tarantool fifttl queue 在其中存储一些延迟任务。

我必须使用以下接口来存储任务:

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

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

【问题讨论】:

    标签: lua queue tarantool


    【解决方案1】:

    简单地说: 使用 Queue API 无法做到这一点。

    长答案: 这个队列的基本规则之一是:“没有人知道任务,如果它没有被接受”,所以它违反了这个规则。

    肮脏的黑客: 您可以从 Tarantool 空间获取此信息:

    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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 2011-01-17
      相关资源
      最近更新 更多