我最近將Symfony項目從手動縮放EC2環境移至Elastic Beanstalk,並且我偶然發現了一個問題。Amazon ElasticBeanstalk中的單實例cronjob
我有一個Cron作業,抓住了一堆已滿的訂閱,並嘗試創建訂單並對它們進行收費,因此這項工作只能在單個服務器上運行,這一點非常重要,因爲它在批處理中抓取它們,如果有重複的Cron正在運行,它將導致相同訂閱的多項費用。
在手動擴展環境中,我只有一臺主服務器,它有一個crontab並運行了子服務器,但在這裏看起來並不可行。
有關如何在沒有主服務器的自動擴展環境中進行設置的任何建議?
我已經看過JMSJobQueueBundle,但它似乎也依賴於只運行crontab的單個實例的主管,這將在自動擴展環境中重複。
我最好是有一個外部服務器每隔X分鐘對我的API進行ping操作,並在單個實例上啓動它的ping工作?這似乎引發了另一個失敗點。
我將試圖建立一個工人。 –