Тайм-аут быстрее \ w memcache - PullRequest
4 голосов
/ 25 апреля 2011

Я пытаюсь заставить PHP расширение Memcache почти сразу же отключиться, если сервер memcached, к которому я подключаюсь, недоступен (по какой-либо причине). Я хотел бы вызвать исключение в этом случае (которое будет обработано где-то еще).

Я безуспешно искал и пробовал разные вещи. Я добавляю серверы (пока только один) в пул со стандартом:

$this->memcache->addServer ( $server['host'], $server['port'] );

Затем я убил memcached deamon (также пытался использовать неправильный порт и хост) и открыл свою страницу. Он просто загружается очень долго, а затем nginx возвращается с ошибкой 504 Gateway Time-out.

Как я могу сказать клиенту memcache попробовать, я не знаю, 1 секунду, а затем сдаться, и в этот момент я должен каким-то образом определить время ожидания.

Суть в том, что если наш сервер memcached будет недоступен, я бы хотел как можно быстрее отобразить удобную страницу ошибок (уже работающую с неперехваченными исключениями) и не заставлять пользователя ждать 30 секунд, прежде чем он увидит общая ошибка сервера.

Ответы [ 2 ]

4 голосов
/ 30 апреля 2011

Просто позвоните:

Также, этот вопрос в значительной степени идентичен вашему.

3 голосов
/ 25 апреля 2011

Уменьшите значение max_failover_attempts параметра конфигурации модуля memcache, слишком большой номер по умолчанию.

Вы также можете указать тайм-аут в качестве третьего параметра для connect() метод:

$memcache->connect('memcache_host', 11211, $timeout);

однако время ожидания по умолчанию должно быть уже установлено на 1 секунду.

Еще одно место, где можно посмотреть параметры времени ожидания TCP в ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...