protected function registerTimeoutHandler($job, WorkerOptions $options)
{
if ($options->timeout == 0 || version_compare(PHP_VERSION, '7.1.0') < 0 || !extension_loaded('pcntl')) {
return;
}
$timeout = $job && !is_null($job->timeout()) ? $job->timeout() : $options->timeout;
pcntl_async_signals(true);
pcntl_signal(SIGALRM, function () {
$this->exceptions->report(new TimeoutException('A queue worker timed out while processing a job.'));
exit(1);
});
pcntl_alarm($timeout + $options->sleep);
}