• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/general/redis.php
  • Класс: CClusterRedis
  • Вызов: CClusterRedis::update
public function update($serverID, $fields) : bool
{
	if (!is_array($serverID))
	{
		$serverID = [ 0 => (int) $serverID];
	}

	$servers = CClusterRedis::loadConfig();
	foreach ($serverID as $id)
	{
		if (!array_key_exists($id, $servers))
		{
			return false;
		}

		$status = $this->checkFields($servers[$id]);
		if (empty($status) || $status['message'] !== null || intval($status['uptime_in_seconds']) <= 0)
		{
			return false;
		}

		$servers[$id] = [
			'ID' => $id,
			'GROUP_ID' => $servers[$id]['GROUP_ID'],
			'STATUS' => $fields['STATUS'] ?? $servers[$id]['STATUS'],
			'HOST' => $fields['HOST'] ?? $servers[$id]['HOST'],
			'PORT' => $fields['PORT'] ?? $servers[$id]['PORT'],
			'MODE' => mb_strtoupper($servers[$id]['MODE']),
			'ROLE' => mb_strtoupper($servers[$id]['ROLE'])
		];
	}

	CClusterRedis::saveConfig($servers);
	return true;
}