1. A method for choosing non-continual jobs to run in a stream-based distributed computer system, comprising: determining a total amount of resources to be consumed by non-continual jobs; determining a priority threshold above which jobs will be accepted, below which jobs will be rejected; minimizing overall penalties relative to the priority threshold based on estimated completion times of the jobs; and applying system constraints to ensure that jobs meet set criteria such that a plurality of non-continual jobs is scheduled which consider the system constraints and minimize overall penalties using available resources.