crodas / microredis

Redis server implemented in rust.
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Improve blocking tasks #53

Closed crodas closed 1 year ago

crodas commented 1 year ago

Introduce a generic way to spawn blocking tasks, adding an optional timeout option and a retry mechanism.

The spawned task will subscribe to a set of keys and will be awaken everytime the data version changes in any of the watched keys. The worker function will return true or false, false meaning they want to be rescheduled again.

This mechanism will improve CPU usage on current approach which is sleep/retry every few milliseconds, which is suboptimal to say the least.

Fixes #52