Comments (4)
The main issue with that is that the timestamp is derived from the ID. We can't freely manipulate the timestamp; it's baked in. (Changing the ID is a non-starter for a ton of reasons; it's the unique identifier of a queue entry.)
from office-hours-queue.
There's a couple considerations here:
- The queue is built on a stateless model, where it simply checks whether the queue is open or not when a request is made; there isn't any mechanism for executing an event x seconds after it opens.
- Ordering is only currently possible by timestamp or by priority, which is why I implemented the randomization using the priority feature. We don't currently have a way to arbitrarily order entries in the queue. I agree that it can mess with the first-of-the-day priority system, but this is simply a tradeoff I had to make when enabling the randomization at all. If you're trying to both use randomization and the first-of-the-day bonus, I'd recommend randomizing early in the queue cycle so that everybody equally loses their advantage. 😛
I don't think that either of these limitations are likely to change in the near future—they're pretty fundamental to the queue's design, and would require major overhauls to re-tool.
from office-hours-queue.
we can probably try to assign priority by normalizing the time and manipulate the millisecond part of time (then we have 1000 slots to use which should be decent).
And since OH queue has ELK the original time of entry will be kept in log system and can be exported normally in the full queue log (if few seconds of inaccuracy matters at all
from office-hours-queue.
This idea is now getting even crazier - for entries added to the queue in the first x seconds, randomize their timestamp millisecond portion with a fixed seed after each derivation of the timestamp? This happens every time when queue entires endpoint is requested
Not sure how feasible this is, but a fixed seed (which could be a queue opening timestamp, for example) ensures that the random millisecond generated is fixed each time, while eliminating the need to store more state. This would also allow for automatic randomisation as a side effect.
Well totally fine if this is not possible. Even if this could be implemented, the actual code might not seem to make much sense.
from office-hours-queue.
Related Issues (20)
- [Enhancement] "Away" status HOT 1
- Inconsistent schedule and status HOT 1
- Use of Notification API for watching Queue on both ends HOT 3
- Feature request: students cannot sign up again until end of cooldown period HOT 3
- Add option to automatically activate cooldown feature when queue reaches specified size HOT 2
- Cooldown doesn't seem to be working HOT 12
- [Enhancement] “Unordered Set” Stage in Between Queue to Stack HOT 11
- [Enhancement] Sort Classes by name HOT 1
- [Enhancement] Limit Queue Size HOT 1
- [Enhancement] Allow students to see which instructor pinned them HOT 3
- [Enhancement] Rename "Meeting Link" label to clarify HOT 3
- [Enhancement] Allow group members to see spot in queue and edit team members' request
- [Enhancement] Dark Mode HOT 2
- [Enhancement] Allow students to remove themselves while "being helped" HOT 1
- Bug: Priority number is also randomized when queue is randomized. HOT 1
- [Enhancement] Built-in Calendar HOT 1
- [ENHANCEMENT] Priority across queues HOT 2
- [Enhancement] Transient Announcements
- [Enhancement] Improve mouse hover text
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from office-hours-queue.