Question: I have a project of business objects and a data layer that could potentially be implemented in multiple interfaces (web site, web services, console app, etc).

My question deals with how to properly implement caching in the methods dealing with data retrieval. I'll be using SqlCacheDependency to determine when the cached objects need to be expired, but I'm unsure of the best way of implementing the cache itself:

If the library is being used for a web project, I'd like to use HttpRuntime.Cache; however, I'm guessing that would be an issue for console apps.

What is the best way of implementing caching in your data layer for a .Net project when allowing for multiple types of interfaces like this?

Answer: 
You can use "-sync y" on your qsub to cause the qsub to wait until the job(s) are finished.
The [Jenkins SGE Cloud plugin](https://wiki.jenkins-ci.org/display/JENKINS/SGE+Cloud+Plugin) submits builds to the Sun Grid Engine (SGE) batch scheduler. Both the open source version of SGE and the commercial Univa Grid Engine (UGE) are supported.

This plugin adds a new type of build step *Run job on SGE* that submits batch jobs to SGE. The build step monitors the job status and periodically appends the progress to the build's *Console Output*. Should the build fail, errors and the exit status of the job also appear. If the job is terminated in Jenkins, it is also terminated in SGE.

Builds are submitted to SGE by a new type of cloud, SGE Cloud. The cloud is given a label like any other slave. When a job with a matching label is run, SGE Cloud submits the build to SGE.