$Jobs->jobs[$job_name] = array('job' => new $job_name(), 'failed_count' => 0); if (method_exists($job_name, 'setUp')) { $Jobs->jobs[$job_name]['job']->setUp(); } } try { if (isset($Jobs->jobs[$job_name]['job'])) { if (isset($Jobs->jobs[$job_name]['failed_count']) && $Jobs->jobs[$job_name]['failed_count'] >= $Jobs->jobs[$job_name]['job']->failed_threshold_total) { $failed_threshold_total = $Jobs->jobs[$job_name]['job']->failed_threshold_total; echo 'Fatal: Job (' . $job_name . ') has failed more than ' . $failed_threshold_total . ' times. No running anymore.'; } else { $Jobs->jobs[$job_name]['job']->data = !empty($queue['data']) ? $queue['data'] : array(); $Jobs->jobs[$job_name]['job']->perform(); } } } catch (Exception $e) { $error_msg = $e->getMessage(); echo $error_msg; $Jobs->log($error_msg . PHP_EOL); if (!empty($job_name) && isset($Jobs->jobs[$job_name]['failed_count'])) { $Jobs->jobs[$job_name]['failed_count']++; } } echo PHP_EOL; }; $channel->basic_consume('jobs', '', false, true, false, false, $callback); while (count($channel->callbacks)) { $channel->wait(); } $channel->close(); $connection->close();