Пример #1
0
        $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();