Hi,

I have a website at which users will subscribe and then I will send a quote once every day randomly (random quote at random hour)

I have multiple number of categories for quotes and I don't to send a quote from the same category unless the user is already received one from each category.

For example, if I have 3 categories:
day1: I will send a random quote from cat#2
day2: I will send a random quote from cat#1
day3: I will send a random quote from cat#3 <-- I don't want to send a quote from cat#1 or #2 here
day4: I will send a random quote from cat#1
day5: I will send a random quote from cat#3
day6: I will send a random quote from cat#2
etc...

This will be easy If I send the quotes for all users once a day but I want to run the sending script every one hour. So, one user may receive the quote at 1 PM today and 8 AM tomorrow.
Also, not all categories can be sent at anytime. Suppose that each category has a specific period (from -> to) at which its quotes can be sent.

I would like to know what is the best way to design this solution (in general, no need for deep technical details), considering that I will have large number of subscribers.

Your ideas and thoughts are really appreciated.

Thanks