Run scheduled jobs.

    You may specify a date to be treated as the current time.

def run_jobs(delete_completed=False, ignore_errors=False, now=None):
    """Run scheduled jobs.

    You may specify a date to be treated as the current time.
    """
    if ScheduledJob.objects.filter(status='running'):
        raise ValueError('jobs in progress found; aborting')
    if now is None:
        now = datetime.datetime.now()

    expire_jobs(now)
    schedule_sticky_jobs()
    start_scheduled_jobs(now, delete_completed, ignore_errors)