2014-03-31 57 views
0

Symfony2 docs存在於陳舊,同時,重新驗證的參考:與Symfony2的網關緩存Symfony2網關緩存是否支持「stale-while-revalidate」擴展?

// app/AppCache.php 
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache; 

class AppCache extends HttpCache 
{ 
    protected function getOptions() 
    { 
     return array(
      'debug'     => false, 
      'default_ttl'   => 0, 
      'private_headers'  => array('Authorization', 'Cookie'), 
      'allow_reload'   => false, 
      'allow_revalidate'  => false, 
      'stale_while_revalidate' => 2, 
      'stale_if_error'   => 60, 
     ); 
    } 
} 

但是我不能達到以下行爲(described here):

enter image description here


我使用非常多的默認配置。我收到以下回復:

第一次請求時,響應來自服務器(花費300毫秒)。

Age:0 
Cache-Control:public, s-maxage=20 
X-Symfony-Cache:GET /api/boards/kQVhc2uJ: miss, store 

第二次請求時,響應來自網關緩存(花費30ms)。

Age:4 
Cache-Control:public, s-maxage=20 
X-Symfony-Cache:GET /api/boards/kQVhc2uJ: fresh 

第三次請求,響應來自服務器(花費300毫秒)。

Age:0 
Cache-Control:public, s-maxage=20 
X-Symfony-Cache:GET /api/boards/kQVhc2uJ: stale, invalid, store 

我希望能夠從網關緩存和網關緩存返回第三個要求做出一個異步調用服務器重新驗證緩存。相反,我直接調用服務器傳遞網關緩存。

Symfony2 Gateway Cache是​​否支持「恢復狀態」擴展?或者它只對Squid或Varnish有用?

+0

我已經問了一個更具體的問題,我的情況在這裏:http://stackoverflow.com/questions/22444320/symfony2-reverse-proxy-returns-stale-invalid這是一個嘗試,要求更直接Symfony相關的問題。 – Websirnik

回答

0

答案是部分。 @jakzal來自Github issue的評論:

@websirnik將不會有與HttpCache的異步調用。如果以前存儲的響應不再新鮮,則第一個請求將生成新的響應。如果在那段時間內有任何其他請求,他們將被送達陳舊的迴應。

HttpCache是​​一個簡單的反向代理,它不打算替換清漆或魷魚。