У меня есть проблема при попытке использовать cacheengine с Xcache:
Когда я использую File Or Memcache, механизм кеша работает нормально, он сохраняет данные и успешно читает их из кеша.
Когда я пытаюсь использовать Xcache, он сохраняет данные (Cache :: Write () возвращает 1), но Cache :: read () ничего не возвращает.
В моем bootstrap.php:
Cache::config('12h', array(
'engine' => 'Xcache',
'duration' => '+12 hours',
// 'path' => CACHE,
// 'prefix' => 'cake_12h_'
));
В core.php:
Cache::config('Xcache', array(
'engine' => 'Xcache', //[required]
'duration' => 3600, //[optional]
'probability' => 100, //[optional]
));
Основная функция, где я использую кеш:
public function pronostics() {
$this->set('title_for_layout', 'Pronostics');
if ($this->_isUserLogged()) {
$pronostics = Cache::read('pronostics', '12h');
if (!$pronostics || isset($this->request->query['force'])) {
$loginUrl = self::SITE_API_URL . '/api/getPronostics?auth_key=123&user_id=' . self::SITE_ID;
list($httpCode, $res) = $this->_curlIt($loginUrl, false, false);
if ($httpCode === 200) {
$res = json_decode($res);
if (is_object($res) && $res->status == 'success') {
$pronostics = $res->pronostics;
$res = Cache::write('pronostics', $pronostics, '12h');
$this->log($res, 'curl');
} else {
$this->redirect(array('controller' => 'interactions', 'action' => 'pronostics'));
}
}
}
$this->set('pronostics', $pronostics);
} else {
$this->Session->setFlash('Pour accéder aux pronostics, vous devez être identifié.', 'default', array(), 'error');
$this->redirect(array('controller' => 'interactions', 'action' => 'index', '?' => array('login_error' => 1)));
}
}
Знаете ли вы, почему xcache не работает в моем случае? Благодарю.
Задача ещё не решена.
Других решений пока нет …