2014-07-25 32 views

回答

4

你可以通過發送一個簡單的GET請求到你的調度器來實現這一點。調度程序中需要點擊的路徑是/dispatcher/invalidate.cache

以下頭確保它的正確處理:

  • CQ-操作:這可以被設置爲「刪除」,刪除的內容。我認爲「EXPIRE」也可以將內容標記爲過時,但不會將其從緩存中物理刪除。
  • CQ-Handle:這指定了什麼應該從緩存文件夾的根目錄開始刪除。例如。 「/ content/geometrixx」,將刪除geometrixx及其下的所有東西。 「/」會刪除緩存中的所有內容。
  • 內容長度&內容類型:確保請求處理正確。因爲我們沒有發送正文,所以長度可以設置爲0. Content-Type可以是「application/octet-stream」(沒有嘗試其他值)。

最後的curl命令,你會建立再會看起來像:

curl -v \ 
-H "CQ-Action: DELETE" \ 
-H "CQ-Handle:/" \ 
-H "Content-Length: 0" \ 
-H "Content-Type: application/octet-stream" \ 
http://localhost:80/dispatcher/invalidate.cache; 

(如果這是消除一切從端口80下本地主機上運行一個調度緩存。這裏這反斜槓是可選的,只是使它更容易閱讀)


可以發出任何盒(受防火牆的限制等),該GET請求,例如,它可能來自:

  • 您的CI生成代理
  • 計劃作業在發佈實例
  • 在您的作者例如一個管理組件,需要一個給定的路徑沖洗。
+1

非常感謝。這正是我所期待的。傳說。 –

+0

我試過CQ-Handle爲「/」來刪除緩存下的所有內容,但並不是刪除緩存文件夾下的所有文件夾,它只是刪除緩存文件夾中的.stat文件。我在調度4.1.9,Apache 2.2,Windows 7.工作正常的文件夾前「/內容」。任何具體的我們必須配置爲「/」? –

+0

@Sandeep Kumar,不是我所知道的 - 你也發送了'CQ-Action:DELETE'頭文件?它是否適用於您的同一個技術堆棧的香草安裝? – anotherdave

0

我不清楚整體畫面,但IIRC調度器刷新如果 刷新整個目錄及其所有子目錄。將被刷新的文件 取決於您的調度程序配置。

所以,如果你沖洗/ content/geometrixx整個網站將被沖洗 。 (如果我錯誤地記得,請別人糾正我)。

最簡單的方法是,恕我直言,重新激活頁面,作爲您想要刷新的區域的根,作爲 。否則,你甚至可以開發發送適當的報頭 自己的吊帶的servlet調度

http://docs.adobe.com/docs/en/aem/6-0/deploy/configuring/replication.html#Extended

始終作品是一樣的,捲曲的命令或操作系統的進程發送的HTTP報頭,但 是刪除目錄的其他選項 來自文件系統。

我不是說最後兩個是最好的,因爲那邊可能有 影響;但他們也應該完成這項工作。