Setup:
1. once a day prepare a queue to send 10,000 emails (the number may depend on notifications required)
2. every hour get 1,000 emails and send them

Flaw:
1. Delaying a certain CPU-intensive task and scheduling it is not helping the server. You cannot guarantee the CPU will be idle an hour later.
2. If first step prepares more than 24,000 emails, the worker cannot cleanup the queue.

Solution:
Proper solution may not always include a queuing service either, because email servers have their own queuing mechanism. So, in this case, it’s better to send emails in the first step.

http://en.wikipedia.org/wiki/Queueing_theory