所以我有一個Django彈性魔豆的應用程序,就像這樣一個功能:在彈性跑cron作業青苗
- 下載文件
- 解析文件,運行到API的一些通話與數據從文件
- 更新EB實例的數據庫與新的數據
在我剛剛建立了一個本地cron作業的測試實例。我剛剛在我的Django應用程序的特定URL上調用了wget
,它將運行該命令。
我的問題是如何在多實例Elastic Beanstalk應用程序中處理此問題。我的EB應用程序只有一個實例應該運行這個命令。我想避免數據庫上的競爭條件和多個實例對外部API的冗餘調用。即只有一個實例應該寫入數據記錄。
但是,谷歌搜索顯示設置cron工作是尷尬的,特別是如果你像EB的新EB。最有希望的探測方法似乎是cron.yaml
方法,但似乎沒有一個例子可以在我看到的網絡上的任何位置設置cron工作環境。
我的理解是:
- 您在您的EB項目的根cron.yaml文件。
- 部署項目
- cron作業自動設置在工作環境(?)中。
- 您定義的命令在指定的時間運行。
我的問題是你如何確保只有一個實例將運行此命令?我有關於cron.yaml
如何工作的原因或者我是否缺少某些東西
經過多次試驗和錯誤後,最終發現了這一點,它很高興爲其他人解決了這個問題。 – GreenGodot