Earlier quoted context omitted.
Let's say you have a web app that sends emails, and you have many worker processes actually sending emails. If you use something like Disque, instead of sending the email directly from the web app, you send a message to Disque, into the send_email queue: "Please send an email to foo@example.com". Workers sending emails will fetch from the send_email queue, and will get the message. Workers sending emails are supposed…
Other examples: - Queueing media files to be encoded/transcoded. - Trigger a build of your application from a web interface. Basically anything that you want to do where you might not want the web server to block until the entire task is done.
Disque – a distributed message broker
51–60 of 96 posts
Re: Disque – a distributed message broker
#52Re: Disque – a distributed message broker
#53Earlier quoted context omitted.
Would love to see multi-threaded workers. That's one of the pros of using sidekiq + redis today (it uses celluloid under the hood).
I'd be interested in what it might take to swap out the redis code for disque in Sidekiq.
However there are clones like Shoryuken [1] that would be easier to port.
Re: Disque – a distributed message broker
#54Re: Disque – a distributed message broker
#55How is this different than beanstalkd?
I suppose development on it has slowed to a crawl so it's no longer "actively" supported.
Re: Disque – a distributed message broker
#56I built a failover system for it involving NFS mounts and heartbeat, but having it all be automatic would be quite nice. Looking forward to a prod-ready version.
Re: Disque – a distributed message broker
#57By resource allocation problem, I mean that jobs may be small (so that lots of them can occur in parallel) or large (occupying a significant fraction of a machine's CPU, memory, bandwidth, whatever), and may be mixed together. Trying to do too much can effectively crash a system with OOM killer or paging.
Does everybody just roll their own resource-based scheduler?
Re: Disque – a distributed message broker
#58Earlier quoted context omitted.
Other examples: - Queueing media files to be encoded/transcoded. - Trigger a build of your application from a web interface. Basically anything that you want to do where you might not want the web server to block until the entire task is done.
Another one is making any sort of external web request; you should never use your web server to do this.
Re: Disque – a distributed message broker
#59How is this different than beanstalkd?
https://github.com/kr/beanstalkd/wiki/faq#does-beanstalk-inh...
Re: Disque – a distributed message broker
#60Can wait for the PHP client so I can finally drop Gearman