Durable Work Queue Operations
Problem statement
Simulate a durable work queue over a finite ordered sequence of operations. For operation i, use operations[i], taskIds[i], and timestamps[i]. Timestamps are nondecreasing.
Before processing each operation at time t, expire every active reservation whose deadline is at most t. A successful reservation at time t has deadline t + leaseDuration. Each successful reservation consumes one attempt.
Examples
Example 1
operations = ["ADD","ADD","RESERVE","FAIL","RESERVE","COMPLETE","RESERVE"]taskIds = ["a","b","","a","","b",""]timestamps = [0,0,1,2,2,3,4]leaseDuration = 3maxAttempts = 2return = ["ADDED","ADDED","a","REQUEUED","b","COMPLETED","a"]Task a is reserved first, then its failure moves it behind b. The next two reservations therefore return b and then a.
Unlock this recently reported problem
FastPrep Pro gives you full access to interview problems reported within the last week.
- Full problem statement and constraints
- 1 more worked example, explained
- Guided hints and editorial
- Run your code on real test cases
Pro subscription, billed yearly — or $19 month-to-month. Cancel anytime.