1. A method of managing tasks in a data center, comprising: receiving a task to be performed by computing resources within the data center; determining, by operation of one or more computer processors, at least two cost-saving methods for scheduling the task based on a job completion constraint, wherein the job completion constraint defines one of (i) an operating parameter of the data center when executing the task and (ii) a penalty associated with executing the task; estimating a required time to complete the task using the computing resources in the data center without the cost-saving methods; comparing the time needed to complete the task to the job completion constraint; upon determining that the required time satisfies the job completion constraint, estimating a time needed to complete the task using the computing resources in the data center with the cost-saving methods; identifying any penalty incurred by the cost-saving methods; determining a profit of the cost-saving methods based on savings and any incurred penalty associated with the cost-saving methods; determining the most profitable cost-saving method based on the profit of each cost-saving methods; and upon determining the estimated time needed for the cost-saving methods satisfies the job completion constraint, scheduling the task using the most profitable of the cost-saving methods, wherein the most profitable cost-saving method delays the execution of the task in order to reduce the energy consumed by the data center relative to executing the task without a delay.