我正在與朋友一起開發應用程序,並且在本地環境中一直運行錯誤,但該應用程序在線運行(使用Heroku)。我相信memcache在我的本地環境中造成問題。這是我到目前爲止已經完成:Memcache在生產中工作,但本地故障
- 添加了內存緩存附加到我的應用程序中的Heroku 我的機器上
- 安裝自制
- 安裝的內存緩存使用自制軟件與
brew install memcached
然後我重新啓動了我的應用程序並使用memcached -vv
運行了memcache進程。
當我訪問應用程序時,它工作正常。然後我會創建一個記錄。這也很好。然後在頁面重新加載 - 從緩存中獲取記錄時,整個應用程序系統失敗。下面是我收到的錯誤(雖然我不知道它是多麼的幫助)
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.empty?
錯誤(S)只對內存緩存代碼的情況下使用點。一個簡單的用戶行爲(即從公司購買一本書)會觸發錯誤,一旦發生錯誤,整個應用程序就會崩潰(意味着任何路徑導致相同的錯誤)。它似乎好像它只是不存儲/獲取該項目,這讓我覺得應用程序根本沒有觸及memcache ......是否有可能需要gem安裝某些東西 - 即使這是在生產環境中運行另一個開發者的機器?
我正在尋找任何有關故障診斷memcache的指導。更具體地說,是否有人遇到過關於memcache的本地和生產環境問題?有什麼建議麼?我曾想過在Heroku上從應用程序中刪除memcache,然後將其卸載到我的電腦上,然後重做所有內容。
我知道我在這裏相當含糊,但我不完全確定要發佈什麼代碼會有所幫助。
謝謝你的幫助。
感謝您的回答,但我想我通過運行捆綁解決了自己的問題(請參閱上面的解釋)。 – mmichael 2012-01-06 23:52:36