docker-php-client

Документація класу ClusterConfig

Опис

ClusterConfig - це клас для налаштування операцій Docker кластера. Він дозволяє встановлювати стратегію виконання, рівень деталізації помилок, налаштовувати повторні спроби, встановлювати пріоритети вузлів та інші параметри кластера.

Простір імен

Sangezar\DockerClient\Config

Методи

create

public static function create(): self

Створює новий екземпляр конфігурації кластера.

Повертає:

setExecutionStrategy

public function setExecutionStrategy(string $strategy): self

Встановлює стратегію виконання операцій на вузлах кластера.

Параметри:

Повертає:

Винятки:

setErrorDetailLevel

public function setErrorDetailLevel(string $level): self

Встановлює рівень деталізації помилок.

Параметри:

Повертає:

Винятки:

setRetryConfig

public function setRetryConfig(bool $enable, ?int $maxRetries = null, ?int $retryDelay = null, ?bool $exponentialBackoff = null): self

Налаштовує параметри повторних спроб при помилках.

Параметри:

Повертає:

Винятки:

setOperationTimeout

public function setOperationTimeout(int $seconds): self

Встановлює таймаут для операцій вузлів кластера.

Параметри:

Повертає:

Винятки:

setNodePriority

public function setNodePriority(string $nodeName, int $priority): self

Встановлює пріоритет для вузла.

Параметри:

Повертає:

Винятки:

setDefaultNodeTag

public function setDefaultNodeTag(?string $tag): self

Встановлює тег за замовчуванням для операцій.

Параметри:

Повертає:

addFailoverNode

public function addFailoverNode(string $nodeName): self

Додає вузол до списку резервних вузлів.

Параметри:

Повертає:

Винятки:

getExecutionStrategy

public function getExecutionStrategy(): string

Отримує поточну стратегію виконання.

Повертає:

getErrorDetailLevel

public function getErrorDetailLevel(): string

Отримує поточний рівень деталізації помилок.

Повертає:

isRetryOnFailure

public function isRetryOnFailure(): bool

Перевіряє, чи дозволені повторні спроби.

Повертає:

getMaxRetries

public function getMaxRetries(): int

Отримує максимальну кількість повторних спроб.

Повертає:

getRetryDelay

public function getRetryDelay(): int

Отримує затримку між повторними спробами.

Повертає:

isExponentialBackoff

public function isExponentialBackoff(): bool

Перевіряє, чи використовується експоненціальне зростання затримки.

Повертає:

getOperationTimeout

public function getOperationTimeout(): int

Отримує таймаут операцій.

Повертає:

getNodePriorities

public function getNodePriorities(): array

Отримує пріоритети вузлів.

Повертає:

getDefaultNodeTag

public function getDefaultNodeTag(): ?string

Отримує тег за замовчуванням.

Повертає:

getFailoverNodes

public function getFailoverNodes(): array

Отримує список резервних вузлів.

Повертає:

toArray

public function toArray(): array

Перетворює конфігурацію в масив.

Повертає:

Приклади використання

Створення базової конфігурації

use Sangezar\DockerClient\Config\ClusterConfig;
use Sangezar\DockerClient\Cluster\Operations\AbstractOperations;

// Створення конфігурації з параметрами за замовчуванням
$config = ClusterConfig::create();

// Налаштування стратегії виконання та рівня помилок
$config->setExecutionStrategy(AbstractOperations::EXECUTION_PARALLEL)
       ->setErrorDetailLevel(AbstractOperations::ERROR_LEVEL_DETAILED);

Налаштування повторних спроб

use Sangezar\DockerClient\Config\ClusterConfig;

$config = ClusterConfig::create();

// Дозволити повторні спроби з максимум 5 спроб
// та затримкою 500 мс між спробами
$config->setRetryConfig(true, 5, 500, true);

// Встановити таймаут операції в 60 секунд
$config->setOperationTimeout(60);

Налаштування пріоритетів вузлів

use Sangezar\DockerClient\Config\ClusterConfig;

$config = ClusterConfig::create();

// Встановлення пріоритетів для вузлів
$config->setNodePriority('node1', 1) // найвищий пріоритет
       ->setNodePriority('node2', 2)
       ->setNodePriority('node3', 3);

// Додавання резервних вузлів
$config->addFailoverNode('backup-node1')
       ->addFailoverNode('backup-node2');

// Встановлення тегу за замовчуванням
$config->setDefaultNodeTag('production');

Отримання налаштувань конфігурації

use Sangezar\DockerClient\Config\ClusterConfig;

$config = ClusterConfig::create()
    ->setExecutionStrategy(AbstractOperations::EXECUTION_PARALLEL)
    ->setRetryConfig(true, 3, 1000, true);

// Перевірка, чи дозволені повторні спроби
if ($config->isRetryOnFailure()) {
    echo "Повторні спроби дозволені\n";
    echo "Максимальна кількість спроб: " . $config->getMaxRetries() . "\n";
    echo "Затримка: " . $config->getRetryDelay() . " мс\n";
}

// Отримання всіх налаштувань як масив
$allSettings = $config->toArray();