簡體   English   中英

Elastic beanstalk 有自己的緩存?

[英]Elastic beanstalk has its own cache?

我在 CakePHP 3 應用程序中使用彈性 beantalk,我還使用 Po 文件進行翻譯,在儀表板中,用戶可以翻譯句子。

我意識到翻譯的更新僅在新部署后且僅在文件更改(例如 HTML 文件)時才會顯示在前端。 如果我運行一個只更改 Po 文件的部署(有一個腳本可以為每個部署創建 po 文件),則翻譯不會在服務器中更新。 我反復檢查了很多次 po 文件在推送它們之前是否正確更新(它們是:)),但是服務器(EB)中的 po 文件有時沒有更新(這有點隨機)。

我有點困惑,因為代碼會在每次部署和每次用戶更新翻譯時刪除 tmp/cache 文件夾,但似乎仍然有一些緩存。 也許是彈性豆莖緩存? Nginx? 我不使用 Elastic 緩存或類似的東西,正如我上面提到的,cake 將緩存作為二進制文件存儲在 tmp/cache 文件夾中。

注意:當一個新的部署被推送到 EB 時,Po 文件是從頭開始生成的,填充了數據庫中的句子。 如果我檢查生成的文件,一切正常,但問題是服務器 po 文件並不總是更新(這種隨機行為讓我認為這是緩存問題)。

更新:我還意識到,如果我在 a.ebextension 文件中添加一些行(例如一個簡單的“ls”命令),po 文件會在服務器中正確更新(我在那里運行一個命令來刪除緩存文件夾每次部署)。

平台:PHP 7.4 在 64 位亞馬遜上運行 Linux 2/3.3.9

以防萬一它可能有所幫助,這是我在每次部署時運行的 .ebextension 文件:

container_commands:

  01-deleteCache:
    command: |
      rm -fr  /var/app/staging/tmp/
      mkdir /var/app/staging/tmp
      mkdir /var/app/staging/tmp/cache
      chown -R webapp:webapp /var/app/staging/tmp
      chmod -R 777 /var/app/staging/tmp
      chmod -R 775 /var/app/staging/src/Locale/
     
      echo "list cache directory to ensure it is empty"
      ls -la /var/app/staging/tmp/cache


 /var/app/staging/plugins/MyPlugin/src/Locale/it_IT/MyPlugin.po

注意ls -la /var/app/staging/tmp/cache命令返回一個空文件夾,因此我可以說蛋糕緩存已正確清除。 謝謝

終於找到了,,。 我刪除了錯誤的目錄,正確的目錄位於 /var/app/current 中,而不是在暫存中。 好吧,正如我之前提到的,我解決了一個環境(暫存),但我在生產中仍然遇到同樣的問題,並且兩個環境都有相同的路徑等......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM