我正在尝试通过他们的API从wunderground.com检索天气,并将其存储在wincache中。出于测试目的,我在新闻模型中做了这个功能:
public function updateWeather(){
$results = file_get_contents('http://api.wunderground.com/api/**api_key**/conditions/q/CA/Montreal.json');
$results = json_decode($results);
return Cache::write('weather', $results);
}
当我从控制器调用它时它工作正常。但是,我无法理解为什么从控制台调用时相同的功能不起作用。我创建了这个shell,以便最终将其添加到Windows任务调度程序。
class WeatherShell extends AppShell {
public $uses = array('News');
public function main() {
$this->News->updateWeather();
}
}
调试时,我看到$ results已正确填充。我从Cache :: write()得到'true',然而,在尝试阅读时我得到'false'。
在新闻控制器中调用以下操作的任何时刻都会完成缓存读取
public function diaporama(){
$this->set('weather', Cache::read('weather'));
}
这是我在bootstrap.php中的缓存配置
Cache::config('default', array(
'engine' => 'Wincache',
'duration'=> 3600,
'probability'=> 100,
'prefix' => ''
));