• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/mysql/slave.php
  • Класс: CClusterSlave
  • Вызов: CClusterSlave::IsSlaveOk
static function IsSlaveOk($slave_id): bool
{
	$cache = BitrixMainDataCache::createInstance();
	if ($cache->initCache(
		(int) Option::get('cluster', 'slave_status_cache_time'),
		'cluster_slave_status_' . (int) $slave_id,
		'cluster'
	))
	{
		$slaveStatus = $cache->getVars();
	}
	else
	{
		$slaveStatus = static::GetStatus($slave_id, true, false, false);
	}

	if (
		$slaveStatus['Seconds_Behind_Master'] > static::GetMaxSlaveDelay()
		|| $slaveStatus['Last_SQL_Error'] != ''
		|| $slaveStatus['Last_IO_Error'] != ''
		|| $slaveStatus['Slave_SQL_Running'] === 'No'
	)
	{
		if ($cache->startDataCache())
		{
			$cache->endDataCache($slaveStatus);
		}
		return false;
	}
	return true;
}