2016-10-02 67 views
1

我的應用程序中有一個工作進程,每小時運行一次腳本。此腳本將數據寫入Web應用程序用來更新其內容的文件系統。我注意到,雖然工作人員成功地運行了這個過程,但數據並沒有被更新。這與Heroku的文件系統是隻讀的事實有關嗎?如果是這樣,我怎麼寫這個文件,而不必進入數據庫?在Heroku文件系統中寫入文件並使用網絡應用程序閱讀它

回答

2

假設您的web和工作進程在您的proc文件的不同行中實例化,它們運行在單獨的Heroku dynos上,每個獨立的文件系統都有自己的文件系統。

因此,您的Web進程無法訪問您的工作進程的文件系統,反之亦然。因爲Heroku dynos可以使用本地dyno文件系統來可靠地將信息從一個進程轉移到另一個進程,所以即使你在同一個dyno上運行這兩個進程(這可能,但不推薦),因爲Heroku dynos可以並至少每24小時一次,並且當他們這樣做時,在沒有任何預先警告的情況下將recycle寫入本地文件系統的任何文件在回收消失之前。

底線:您不應該也不能使用本地的Heroku文件系統來執行您正在嘗試執行的操作。相反,您需要使用某種有狀態的支持服務(例如Heroku Redis)。

相關問題