/** * Send curl purge request * to invalidate cache by tags pattern * * @param string $tagsPattern * @return bool Return true if successful; otherwise return false */ public function sendPurgeRequest($tagsPattern) { $socketAdapter = $this->socketAdapterFactory->create(); $servers = $this->cacheServer->getUris(); $headers = [self::HEADER_X_MAGENTO_TAGS_PATTERN => $tagsPattern]; $socketAdapter->setOptions(['timeout' => 10]); foreach ($servers as $server) { try { $socketAdapter->connect($server->getHost(), $server->getPort()); $socketAdapter->write('PURGE', $server, '1.1', $headers); $socketAdapter->close(); } catch (\Exception $e) { $this->logger->critical($e->getMessage(), compact('server', 'tagsPattern')); return false; } } $this->logger->execute(compact('servers', 'tagsPattern')); return true; }