-
Notifications
You must be signed in to change notification settings - Fork 52
Sequence cache #89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sequence cache #89
Conversation
А можно не трогать PeclMemcache ? |
Почему? BC же сохраняется.
Поддерживаю, добавим. |
|
||
return $this; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не догнал. То есть в процессе работы мы можем менять параметры подключения - хост, порт, таймаут?
И после того как мы установили соединение $this->instance->pconnect() или $this->instance->connect() мы еще раз устанавливаем таймаут?
Зачем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
То есть в процессе работы мы можем менять параметры подключения - хост, порт, таймаут?
Не, не. Смысл в том, что подключение производится только при необходимости.
мы еще раз устанавливаем таймаут?
Это ошибка. На самом деле там два вида таймаута - таймаут на подключение и таймаут на запрос. Можно задать оба.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ну да, не заметил что $this->instance->setServerParams() а не $this->setServerParams(),
Меня все-таки смущает "ленивое подключение", не могу обосновать, что-то на уровне эмоций ) |
Ну потому, что лень в этом пире нужна нам, а в остальных не очень :) Может быть кто-то другой (тот, кто пользуется) это допишет.
Это может быть полезно для последовательного кеша и всех реализаций аггрегатных кешей. Допустим у тебя 10 пиров в AggragateCache, но за время жизни скрипта ты делаешь всего один get к ним. Зачем еще 19 подключений? Это же трата ресурсов.
У нас была задумка сделать декоратор/прокси - LazyObject, который бы делегировал все вызовы внутреннему классу, создавая его при первой необходимости. Но там оверхед получался. ps. Тесты сейчас добавлю. |
А если мне не нужно "ленивое" подключение, я должен сразу после создания дернуть какой-нибудь метод, например isAlive() ... |
А зачем тебе это? ;) |
Обновил тесты, теперь они стали более лучше одеваться^W объяснять примеры использования. |
Все смотрю и задумываюсь - а надо ли в конструкторе добавлять новый аргумент? Может правильней было б его через отдельный setter задавать. Тем более что в этом lazy варианте теперь соединение устанавливается не в конструкторе. |
Мы же пишем враппер для http://ru2.php.net/manual/en/memcache.connect.php, там в конструкторе три параметра. Я тут ничего плохого не вижу. Алсо есть значение по-умолчанию, что дает сохранение обратной совместимости. |
@dovg разве до изменений оно коннектилось с таймаутом? Теперь же если создавать так же с двумя параметрами класс, то коннектиться к мемкешу он будет с тайматом. |
Хм, не прав. BC сохраняется в этом случае тоже. |
Друзья, если нет возражений по существу, то я это волью. |
@@ -147,10 +166,58 @@ public function append($key, $data) | |||
Assert::isUnreachable(); | |||
} | |||
|
|||
/** | |||
* @param float $requestTimeout time in seconds | |||
* @return \PeclMemcached |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
тут слэшик лишний, пожалуй. и еще кой-где в diff'е встречается этот признак нетбинса
закрываю в пользу #93 |
Вот такая штука у нас родилась.
Включает в себя (в порядке следования в diff):
Тесты проходит.
Вольем?