/**
  * {@inheritdoc}
  */
 public function initialize(array $options)
 {
     if (!extension_loaded('pcntl')) {
         $this->logger and $this->logger->warning('[SignalHandler] The SignalHandlerProcessor needs the pcntl extension to work', ['swarrot_processor' => 'signal_handler']);
         return;
     }
     $signals = isset($options['signal_handler_signals']) ? $options['signal_handler_signals'] : array();
     foreach ($signals as $signal) {
         pcntl_signal($signal, function () {
             SignalHandlerProcessor::$shouldExit = true;
         });
     }
 }
Example #2
0
 /**
  * {@inheritDoc}
  */
 public function process(Message $message, array $options)
 {
     if (!extension_loaded('pcntl')) {
         $this->logger and $this->logger->warning('[SignalHandler] The SignalHandlerProcessor needs the pcntl extension to work', ['swarrot_processor' => 'signal_handler']);
         return $this->processor->process($message, $options);
     }
     $signals = isset($options['signal_handler_signals']) ? $options['signal_handler_signals'] : array();
     foreach ($signals as $signal) {
         pcntl_signal($signal, function () {
             SignalHandlerProcessor::$shouldExit = true;
         });
     }
     $return = $this->processor->process($message, $options);
     if ($this->shouldStop()) {
         return false;
     }
     return $return;
 }