title: More appropriate for my task: background worker or thread pool?
body: <p>I have a simple web application module which basically accepts requests to save a zip file on <code>PageLoad</code> from a mobile client app.</p>
  
  <p>Now, What I want to do is to unzip the file and read the file inside it and process it further..including making entries into a database.</p>
  
  <p><strong>Update:</strong> the zip file and its contents will be fairly smaller in size so the server shouldn't be burdened with much load. </p>
  
  <p><strong>Update 2:</strong> I just read about <a href="https://stackoverflow.com/questions/10929922/asp-net-iis-when-are-requests-queued">when IIS queues requests</a> (at global/app level). So does that mean that I don't need to implement complex request handling mechanism and the IIS can take care of the app by itself?</p>
  
  <p><strong>Update 3:</strong> I am looking for offloading the processing of the downloaded zip not only for the sake of minimizing the overhead (in terms of performance) but also in order to avoid the problem of <code>table-locking</code> when the file is processed and records updated into the same table. In the scenario of multiple devices requesting the page and the background task processing database updateing in parallel would cause an exception.</p>
  
  <p>As of now I have zeroed on two solutions:</p>
  
  <ul>
  <li>To implement a concurrent/message queue </li>
  <li>To implement the file processing code into a separate tool and schedule a job on the server to check for non-processed file(s) and process them serially.</li>
  </ul>
  
  <p>Inclined towards a <code>Queuing Mechanism</code> I will try to implement is as it seems less dependent on config. v/s manually configuring the job/schedule at the server side.</p>
  
  <p>So, what do you guys recommend me for this purpose?  </p>
  
  <p>Moreover after the zip file is requested and saved on server side, the client &amp; server side connection is released after doing so. Not looking to burden my IIS.</p>
  
  <p>Imagine a couple of hundred clients simultaneously requesting the page..</p>
  
  <p>I actually haven't used neither of them before so any samples or how-to's will be more appreciated.</p>