Skip to content

Commit

Permalink
Used PHP 7.1+ pcntl_async_signals()
Browse files Browse the repository at this point in the history
  • Loading branch information
lyrixx committed May 9, 2019
1 parent 5014e5f commit 96aedb9
Showing 1 changed file with 9 additions and 30 deletions.
39 changes: 9 additions & 30 deletions src/Swarrot/Processor/SignalHandler/SignalHandlerProcessor.php
Expand Up @@ -53,11 +53,7 @@ public function setDefaultOptions(OptionsResolver $resolver)
*/
public function sleep(array $options)
{
if (!extension_loaded('pcntl')) {
return true;
}

return !$this->shouldStop($options);
return !$this::$shouldExit;
}

/**
Expand All @@ -67,7 +63,7 @@ public function process(Message $message, array $options)
{
$return = $this->processor->process($message, $options);

if (extension_loaded('pcntl') && $this->shouldStop($options)) {
if ($this::$shouldExit) {
return false;
}

Expand All @@ -93,33 +89,16 @@ public function initialize(array $options)
$signals = isset($options['signal_handler_signals']) ? $options['signal_handler_signals'] : array();
foreach ($signals as $signal) {
pcntl_signal($signal, function () {
$this->logger->info(
'[SignalHandler] Signal received. Stop consumer now.',
[
'swarrot_processor' => 'signal_handler',
]
);
SignalHandlerProcessor::$shouldExit = true;
});
}
}

/**
* shouldStop.
*
* @param array $options
*
* @return bool
*/
protected function shouldStop(array $options)
{
pcntl_signal_dispatch();

if ($this::$shouldExit) {
$this->logger->info(
'[SignalHandler] Signal received. Stop consumer now.',
[
'swarrot_processor' => 'signal_handler',
]
);

return true;
}

return false;
pcntl_async_signals(true);
}
}

0 comments on commit 96aedb9

Please sign in to comment.