I reserve X jobs dump them into an array, and never do anything with the job other than read the data. This causes beanstalkd to automatically re-queue the jobs because I never told beanstalkd the work had been processed.
[code]
$tube = ‘default’;
$max  = 100;
$run  = true;
$res  = [];
while( $run && count( $res ) reserveFromTube( $tube, 1 );
    $run = $job && $job->getId();
    if( $run ) {
        $res[] = $job->getData();
    }
}
[/code]
If you remove the max checks, you should be able to dump all to the $res array. If max is larger than your queued jobs, it will also grab all.