Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields
Queue Class Reference

Public Member Functions

 __construct (AppState $appState, LocaleResolver $localeResolver, ResourceConnection $resourceConnection, LoggerInterface $logger, DeployPackage $deployPackageService, array $options=[], $maxProcesses=self::DEFAULT_MAX_PROCESSES_AMOUNT, $maxExecTime=self::DEFAULT_MAX_EXEC_TIME)
 
 add (Package $package, array $dependencies=[])
 
 getPackages ()
 
 process ()
 
 __destruct ()
 

Data Fields

const DEFAULT_MAX_PROCESSES_AMOUNT = 4
 
const DEFAULT_MAX_EXEC_TIME = 400
 

Detailed Description

Deployment Queue

Deploy packages in parallel forks (if available)

Definition at line 20 of file Queue.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( AppState  $appState,
LocaleResolver  $localeResolver,
ResourceConnection  $resourceConnection,
LoggerInterface  $logger,
DeployPackage  $deployPackageService,
array  $options = [],
  $maxProcesses = self::DEFAULT_MAX_PROCESSES_AMOUNT,
  $maxExecTime = self::DEFAULT_MAX_EXEC_TIME 
)
Parameters
AppState$appState
LocaleResolver$localeResolver
ResourceConnection$resourceConnection
LoggerInterface$logger
DeployPackage$deployPackageService
array$options
int$maxProcesses
int$maxExecTime

Definition at line 107 of file Queue.php.

116  {
117  $this->appState = $appState;
118  $this->localeResolver = $localeResolver;
119  $this->resourceConnection = $resourceConnection;
120  $this->logger = $logger;
121  $this->deployPackageService = $deployPackageService;
122  $this->options = $options;
123  $this->maxProcesses = $maxProcesses;
124  $this->maxExecTime = $maxExecTime;
125  }

◆ __destruct()

__destruct ( )

Free resources

Protect against zombie process

Returns
void

Definition at line 362 of file Queue.php.

363  {
364  foreach ($this->inProgress as $package) {
365  if (pcntl_waitpid($this->getPid($package), $status) === -1) {
366  throw new \RuntimeException(
367  'Error while waiting for package deployed: ' . $this->getPid($package) . '; Status: ' . $status
368  );
369  }
370  }
371  }
$status
Definition: order_status.php:8

Member Function Documentation

◆ add()

add ( Package  $package,
array  $dependencies = [] 
)
Parameters
Package$package
Package[]$dependencies
Returns
bool true on success

Definition at line 132 of file Queue.php.

133  {
134  $this->packages[$package->getPath()] = [
135  'package' => $package,
136  'dependencies' => $dependencies
137  ];
138 
139  return true;
140  }

◆ getPackages()

getPackages ( )
Returns
Package[]

Definition at line 145 of file Queue.php.

146  {
147  return $this->packages;
148  }

◆ process()

process ( )

Process jobs

Returns
int

Definition at line 155 of file Queue.php.

156  {
157  $returnStatus = 0;
158  $this->start = $this->lastJobStarted = time();
159  $packages = $this->packages;
160  while (count($packages) && $this->checkTimeout()) {
161  foreach ($packages as $name => $packageJob) {
162  $this->assertAndExecute($name, $packages, $packageJob);
163  }
164  $this->logger->info('.');
165  sleep(3);
166  foreach ($this->inProgress as $name => $package) {
167  if ($this->isDeployed($package)) {
168  unset($this->inProgress[$name]);
169  }
170  }
171  }
172 
173  $this->awaitForAllProcesses();
174 
175  return $returnStatus;
176  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

Field Documentation

◆ DEFAULT_MAX_EXEC_TIME

const DEFAULT_MAX_EXEC_TIME = 400

Default max execution time

Definition at line 30 of file Queue.php.

◆ DEFAULT_MAX_PROCESSES_AMOUNT

const DEFAULT_MAX_PROCESSES_AMOUNT = 4

Default max amount of processes

Definition at line 25 of file Queue.php.


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