Incidentally - if any one has any way of doing this in PHP without having to setup cron jobs (and not using node or its derivatives), I'm really open to any ideas!
Incidentally - if any one has any way of doing this in PHP without having to setup cron jobs (and not using node or its derivatives), I'm really open to any ideas!
This news isn't about Rails implementing its own background queue, but rather creating a unified API for interacting with background queuing systems; of which there are many. Resque (crafted at GitHub [1]) is probably the most popular: https://github.com/defunkt/resque.
I've used it in production for a few different projects and highly recommend it (both the PHP and Ruby versions).
Where a queue is really useful is converting from foreground to background, so that you can optimize for throughput, rather than having to leave free capacity for 'random arrivals' of your foreground servers. Think of it as the same as the same problem as the bursty traffic that a bank machine gets, and why you always seem to have to line up.
The mathematical term is Poisson distribution: http://en.wikipedia.org/wiki/Poisson_distribution
cronjob removes them based on time entered, and sends them.
shrug
As someone pointed out in the OP comments, this is like Rack for queues.
http://de2.php.net/manual/en/function.exec.php#35731
http://stackoverflow.com/questions/1019867/is-there-a-way-to...
Alternatively, you can use curl to trigger a request inside of your page to another page (send_email.php) and don't wait for the response.
http://tech-hacks.net/tech/13/creating-php-cronjobs-without-...
I ended up doing a little status page for my newsletter; I set it up to auto refresh in Opera, each one of of the refreshes sends 10 emails, and prints their statuses/destination/titles as they go (it's also rate limited in memcached). I chuck that the laptop or a third monitor and leave it for a couple of hours, keeping an eye on it as it goes.
Using something off the shelf I could trust would be much nicer.
So you will have to add some kind of throttling to make it work.