I'm attempting to make to create a indication system and i'm using quarta movement for my arranging. However develop a few good ways how you can do what I have to do but I don't know what the easiest way is and just how to check it.

Essentially I've got a indication system that customers can set memory joggers. It is just like Google Calendar. You place the time and date that the event is and you set a indication by saying "help remind me fifteen minutes before"

So you might have a event on May tenth, 2011 9:59am and also you could say reminded me "fifteen minutes before"

To ensure that could be May tenth, 10:44am.

I'll be inside a located atmosphere. (My website and also the arranging is going to be running of within the same atmosphere as well as exactly the same solution. Therefore it can't decelerate the customers browsing my website by much.)

I'm also using nhibernate and fluent nhibernate to complete the db querying. I'm using asp.internet mvc 3 for my site.

Option 1.

Perform a database query every minutes and obtain all memory joggers that needs to be sent for the reason that minute. This obviously means a database query every minute and most likely too intensive for any shared atmosphere.

Option 2.

Perform a database query every a few minutes and grab all of the memory joggers that needs to be sent for the reason that 5 minute block and store these questions collection(so memory) after which check every minute which of them have to be sent.

This obviously reduces the quantity of queries done although not confident that this can get very memory intensive.

Option 3

Just like Option 2 but send a question every fifteen minutes and store inside a collection.

This obviously means alot less databases queries but more saved in memory.

Option 4

Perform a database query every fifteen minutes and obtain all memory joggers for the reason that block and fire them out immediately.

What this means is they will not be saved in memory very lengthy and minimal amount of queries. However based on once the user set to become reminded the e-mail could arrive alot earlier they set.

For example they stated help remind me at 10:44am. I'd have my scheduler start at 10:00am also it would grab from 10:00am to 10:15am after which 10:15am to 10:30am then 10:30am to 10:45am.

To ensure that email would really arrive 14 mins earlier then intended.