Have you considered MSMQ for this? You click messages in the queue, read every N minutes, and turn on redundancy if power failures occur, etc. If you are in a load-balanced environment, you can send messages to the general queue.
In response to questions:
I read some negative things about multithreading in the .NET MVC environment. Should I avoid using multiple threads since I am not doing anything that is really processor intensive?
You are not recommended to use ThreadPools in ASP.NET, therefore the same applies to MVC. It can throttle your application.
Quartz.NET looks like it can do a lot of cool things. Should I look at using Quartz.NET for something like this?
This is a replacement for scheduling, not queuing, akin to cronjobs.
Is my design reasonable? If not, how can this be improved?
The serial part sounds great, the sound of SUCCESS, FAILURE, TIMEOUT or ABORTED sounds good. As already mentioned, MSMQ will save you the extra redundancy record and message queuing system.
How would you develop a system to achieve the goals of a new application?
A service that reads from the message queue so often and performs the action you want to do. You can also take a look at SQL Server Message Broker as an alternative to MSMQ. MSMQ does not have very good built-in tools to manage it, so you will need to build on top of it. However, it has the entire .NET assembly as part of the built-in structure for its use.
Since you are using .NET 4, you can also take advantage of parallel tasks instead of manually controlling the flows of the HTTP sending part of your system.
source share