Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions
ConsumerRunner Class Reference

Public Member Functions

 __construct (ConsumerFactory $consumerFactory, MaintenanceMode $maintenanceMode=null, $maintenanceSleepInterval=30)
 
 __call ($name, $arguments)
 

Detailed Description

Consumer runner class is used to run consumer, which name matches the magic method invoked on this class.

Is used to schedule consumers execution in crontab.xml as follows: <job name="consumerConsumerName" instance="Magento\MessageQueue\Model\ConsumerRunner" method="consumerName"> Where consumerName should be a valid name of consumer registered in some queue.xml

@api

Since
100.0.2

Definition at line 25 of file ConsumerRunner.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( ConsumerFactory  $consumerFactory,
MaintenanceMode  $maintenanceMode = null,
  $maintenanceSleepInterval = 30 
)

Initialize dependencies.

Parameters
ConsumerFactory$consumerFactory
MaintenanceMode$maintenanceMode
integer$maintenanceSleepInterval

Definition at line 49 of file ConsumerRunner.php.

53  {
54  $this->consumerFactory = $consumerFactory;
55  $this->maintenanceMode = $maintenanceMode ?: ObjectManager::getInstance()->get(MaintenanceMode::class);
56  $this->maintenanceSleepInterval = $maintenanceSleepInterval;
57  }

Member Function Documentation

◆ __call()

__call (   $name,
  $arguments 
)

Process messages in queue using consumer, which name is equal to the current magic method name.

Parameters
string$name
array$arguments
Exceptions
LocalizedException
Returns
void

Definition at line 67 of file ConsumerRunner.php.

68  {
69  try {
70  $consumer = $this->consumerFactory->get($name);
71  } catch (\Exception $e) {
72  $errorMsg = '"%callbackMethod" callback method specified in crontab.xml '
73  . 'must have corresponding consumer declared in some queue.xml.';
74  throw new LocalizedException(__($errorMsg, ['callbackMethod' => $name]));
75  }
76  if (!$this->maintenanceMode->isOn()) {
77  $consumer->process();
78  } else {
79  sleep($this->maintenanceSleepInterval);
80  }
81  }
__()
Definition: __.php:13
if(!isset($_GET['name'])) $name
Definition: log.php:14

The documentation for this class was generated from the following file: