Comments (3)
I'm thinking that a true cross-process priority queue or independent lichess API worker would be fairly difficult to implement.
A simpler solution might be to use a cross-process lock on the lichess API layer, and then for low-priority requests, wait a brief period (e.g. 0.5 seconds) between calls to the API layer. That way any higher-priority requests waiting for the lock shouldn't have to worry about contention from the low-priority requests.
This assumes that there's only one thread running low-priority requests at a time, which is probably reasonable.
from heltour.
Hrmm. a single-thread worker versus a single-process worker seems to be the same level of complexity. At least I don't see the savings on complexity. Also, by making it a separate process we ease some amount of deployment concerns.
Cross-process coordination is the issue, but unless we guarantee that the deployment will always be a single django process/thread (it's not currently) then we have similar issues that we have to solve anyways.
I'd be happy to discuss some thoughts on how to implement this.
from heltour.
I think the worker still needs to be set up on the live server, but otherwise it's implemented.
from heltour.
Related Issues (20)
- shorten team registration form (conditionally)
- change phrasing on team registration form
- Start games automatically
- in registration form, don't ask about provisional rating, but inform instead
- reliability score for team creation
- heltour picks up wrong (old) game HOT 1
- most active players list
- Vice-Captains are not indicated on public pages
- in manage_players, show only notes for current season
- in teamgen, force a player on a team
- in teamgen, ability to set a fake rating
- in teamgen, make rating ranges bounds of alts and team players consistent HOT 1
- league rating for seeding HOT 2
- pyOpenSSL 22.0.0 is incompatible with cryptography 41.0.4
- Send pairing notification from the pairing details view
- "contact on slack" stopped working
- Make 4545 tournaments lichess broadcasts
- For alternate searches, deprioritise matches that would be between two alternates. HOT 1
- Display current score on pairings page
- More reliable contact indicators on the pairing page
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 heltour.