I have a web app with 10,000 users. A user submits a request for a job. That request goes on a queue (in redis) for that user to be processed sequentially, one at a time for that user. A request is sent to a different server to process the job.
A progress bar is rendered on the client's browser, which requires a POST to the job processing server every 2 seconds to obtain the current progress. This response updates the redis queue with the progress.
I've looked into two background job frameworks, but they don't seem suited to handle this.
Resque: the memory overhead is too high to have thousands of workers to monitor thousands of queues.
Sidekiq: From the sidekiq wiki: Sidekiq is not designed to work well with dozens of queues.
The biggest problem seems to be having so many asynchronous processes updating progress. Is there a design solution I'm missing or a pre-existing framework?
Aucun commentaire:
Enregistrer un commentaire