我有一個流光檔案部署到heroku。具有以下結構
- main.py:main.py中點擊按鈕時,將檔案寫入同一檔案夾中的csv格式
- scheduler.py:位于同一檔案夾中的檔案采用 main.py 生成的相同 csv 格式檔案并將其寫入 bigquery
這部署在 heroku 中,并指定了 procfiles
- web: sh setup.sh && streamlit run main.py
- 工人:python scheduler.py
所有代碼都作業正常。然而問題是當我將它部署到heroku時,調度程式檔案運行并推送到bigquery,但是沒有檔案被推送。這是因為那個worker和web在不同的環境中,所以worker無法讀取main.py寫入的檔案嗎?
如何在不影響 main.py 的情況下對 bigquery 進行后臺推送?
uj5u.com熱心網友回復:
這是因為那個worker和web在不同的環境中,所以worker無法讀取main.py寫入的檔案嗎?
這是正確的。您不能以這種方式在行程之間傳遞資訊,因為每個行程都在單獨的 dyno 上運行。
我建議您將資料存盤在其他地方,例如 PostgreSQL 等資料庫中。如果您希望繼續使用 CSV 檔案,則可以改用 Amazon S3 或 Azure Blob 存盤。您的兩個測功機都可以連接到這些外部服務。
旁注:我不確定你到底在做什么scheduler.py,但如果它主要是閑置閑置,偶爾運行一份作業,我不會以工人的身份運行它。您將為此付出代價,大多數時候什么都不做。
Heroku 有一個更適合的調度程式。只需安排一個運行底層命令的作業即可推送到 BigQuery。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/518107.html
