I'm designing a solution in which users perform tasks based on task queue. The point is to create system, where user goes on specific URL and server serves him listing with for example: items to asses and put into specific predefined category - like StackExchange's queues (First Posts, Late Answers and Triage).
What I'm struggling with is making sure that users will get different tasks to do and no user will get the same task other user is currently working on.
Obvious solution would be storing
datetime when given task is served to user and have other service to monitor those tasks and release them to be available again if timeout occurred.
This solution however feels kind of "dirty". Like it's the most straightforward but might not cover all edge-cases.
I also struggle to formulate proper query for Google, because all results I get are about event buses and asynchronous tasks.
Is there any more clever way to solve this kind of problem?