10-й доклад из списка, основная часть абсолютно не информативна. В вопрос-ответах раскрывается немного больше, например что не нужно писать большие тесты, их сложно поддерживать.
С одной стороны в лазурите шикарная кровать с отличным механизмом стоит 60+ (т.р.).
С другой стороны Икея, стоимость от 20 до 30, но за у той, которая за 20 мы даже лифт поднять не смогли. За 30 работает, но всё равно довольно уныла.
Найти бы ещё где эту тактильно опробовать.
Odesk. Почасовая оплата — кидание исключено в принципе. Фиксировання цена — ни разу не сталкивался с неоплатой. Видимо уровень заказчиков гораздо выше.
Ну почему, недавно искал квартиру в ближнем подмосковье — от 50 до 100%. 100% почти всегда только в тех случаях, когда квартира ну очень хороший вариант.
С увеличением нагрузки захочется увеличить ttl и ситуация одновременного доступа будет встречаться всё чаще. Тем более, вы выкладываете код на для общего пользования и кто знает где и как его будут применять.
На всякий случай пишу, что cas, append и прочие полезные штуки доступны только в php-расширении memcached. Судя по документации, за работу с ним отвечает Zend_Cache_Backend_Libmemcached, а Zend_Cache_Backend_Memcached работает с memcache, где такие функции недоступны. А для разработки под windows можно использовать эмулятор memcached.
Что ещё можно улучшить не могу сказать, с ZF не работаю и код читал по диагонали.
Ваш класс содержит потенциально опасные места, которые с некоторой вероятностью станут причиной трудноуловимых глюков.
Например: public function updateTagList($tag, $cacheId) {
// Получаем список ключе кеширования для тега
$list = $this->getListByTag($tag);
$list[] = $cacheId;
// Добавляем в него новый ключ и пересохраняем список
$this->saveListByTag($tag, $list);
}
При большой нагрузке вполне может сложиться так, что два потока почти одновременно захотят обновить список тэгов и более везучий поток у нас обязательно затрет тег невезучего.
В данном случае можно либо хранить список тегов в текстовом виде и добавлять через memcached::append либо использовать memcached::cas.
Обычный register_shutdown_function(). Кажется, работает везде и всегда.
Ключ регенерации ставится в тот же самый кэш с каким-то небольшим временем жизни.
Т.е. если
Ну так и делать, сам же всё описал. У нас например вот так:
$value = PersistentCache::getInstance(cache_key, time = 60, callback, callback_params)->getValue();
Внутри когда начинает подходить время отдаем старое значение, ставим флаг о начале перегенерации и запускаем её по окончанию генерации страницы.
Вчера случилась беда,
комп подсказал, что кабель порвал сатана.
Скорее спешите исправить фигню,
Пришлите кабелящика в нашу избу.
Сами не можем исправить мы сетку,
без ЭГо повесим себя мы на ветку
У меня была задача сложнее, выбирал ноутбук жене. Нужен был не только матовый экран, но и симпатичный внешний вид не черного цвета. Собственно 3550 и купил. Из минусов — неаккуратная сборка, экран кроме матовости больше ничем не радует. Углы обзора минимальные.
На b2bcenter можно использовать и другую подходящую ЭЦП. Цену можно снизить, если отказаться от eToken например. И ЭЦП можно использовать в других электронных торгах (другое дело, позволит ли другая площадка использовать ЭЦП без своей полиси).
Делал загранпаспорт через госуслуги. Проблема была только в одном: ждал месяц, не приходило письмо с кодом активации. Позвонил в поддержку, сказали, что у меня проблемы с адресом. Ввел его ещё раз и письмо пришло через неделю.
Спасибо, АДМ из Тулы. Очень вкусный пряник, а шарики уже успели потерять
С другой стороны Икея, стоимость от 20 до 30, но за у той, которая за 20 мы даже лифт поднять не смогли. За 30 работает, но всё равно довольно уныла.
Найти бы ещё где эту тактильно опробовать.
На всякий случай пишу, что cas, append и прочие полезные штуки доступны только в php-расширении memcached. Судя по документации, за работу с ним отвечает Zend_Cache_Backend_Libmemcached, а Zend_Cache_Backend_Memcached работает с memcache, где такие функции недоступны. А для разработки под windows можно использовать эмулятор memcached.
Что ещё можно улучшить не могу сказать, с ZF не работаю и код читал по диагонали.
Например:
public function updateTagList($tag, $cacheId) {
// Получаем список ключе кеширования для тега
$list = $this->getListByTag($tag);
$list[] = $cacheId;
// Добавляем в него новый ключ и пересохраняем список
$this->saveListByTag($tag, $list);
}
При большой нагрузке вполне может сложиться так, что два потока почти одновременно захотят обновить список тэгов и более везучий поток у нас обязательно затрет тег невезучего.
В данном случае можно либо хранить список тегов в текстовом виде и добавлять через memcached::append либо использовать memcached::cas.
Ключ регенерации ставится в тот же самый кэш с каким-то небольшим временем жизни.
Т.е. если
$value = PersistentCache::getInstance(cache_key, time = 60, callback, callback_params)->getValue();
Внутри когда начинает подходить время отдаем старое значение, ставим флаг о начале перегенерации и запускаем её по окончанию генерации страницы.
комп подсказал, что кабель порвал сатана.
Скорее спешите исправить фигню,
Пришлите кабелящика в нашу избу.
Сами не можем исправить мы сетку,
без ЭГо повесим себя мы на ветку