queue
queue copied to clipboard
Create task queues, add and take jobs, monitor failed tasks
[tube:release()](https://github.com/tarantool/queue#releasing-a-task) accepts an optional second argument `opts`, which at this moment can only consist of `delay`. But often when I release a task back into the queue, I need to...
Implement lifo and lifottl drivers by analogy with fifo and fifottl drivers. When implementing new drivers, don't need to use the "copy-paste" methodology (WET), the common code must be moved...
Looks like utube and utubettl (fifo and fifottl) drivers have a lot of common code. It would be nice to reuse the code and implement the ttl drivers as a...
When we put a task with ttl and ttr set, it behaves incorrectly. ``` Example: queue = require 'queue' queue.create_tube('test_ttr', 'fifottl') queue.tube.test_ttr:put('foobar', {ttr=100, ttl=5}) queue.tube.test_ttr:take(0) ----- Wait six seconds queue.tube.test_ttr:ack(0)...
The problems detected by luacheck should be fixed and the luacheck stage should be added to the CI.
Due to the fact that queue_state_fiber called box.ctrl.wait_r* every millisecond, the idle queue consumed more than 10% of CPU. The proposed solution makes calls to box.ctrl.wait_r* blocking until the read/write...
when this syntax is used to put data in the buffer queue.tube.test_buffer:put(data, {ttr=60, ttl=15768000000000000}) You end up with entries that have a ttl of 0 and a large next_event time...
As a result of constant requests from fiber `queue_state_fiber` CPU consumption of tarantool at idle time increased from 12% to 33%. Increasing timeout to `0.1` (https://github.com/tarantool/queue/blob/2e01cb5b60322ea62d1b8d69c6f1d360ca38ee8e/queue/abstract/queue_state.lua#L79) helps.
It's impossible to update queue module without restarting Tarantool server. This makes the queue module unmaintained in production.
Integration with [Tarantool metrics module](https://www.tarantool.io/en/doc/latest/book/monitoring/install/) and [grafana dashboard ](https://www.tarantool.io/ru/doc/latest/book/monitoring/grafana_dashboard/) will help monitor the queue module.