我有一個Java應用程序,它已經計劃在設定的時間每晚運行一次。如果符合條件,應用程序將發送電子郵件。所有的調度代碼都在Java中,我沒有使用任何Amazon的功能來調度它。此應用程序已部署在EC2實例上,並位於彈性負載均衡器之後。基於負載,可以添加額外的節點。我的Java應用程序也被複制到其他節點,夜間作業在所有實例上執行。如果僅在一個實例上運行夜間作業(如果它在N個實例上部署),該如何運行?
有沒有辦法讓我單個節點執行這項工作?
謝謝。
我有一個Java應用程序,它已經計劃在設定的時間每晚運行一次。如果符合條件,應用程序將發送電子郵件。所有的調度代碼都在Java中,我沒有使用任何Amazon的功能來調度它。此應用程序已部署在EC2實例上,並位於彈性負載均衡器之後。基於負載,可以添加額外的節點。我的Java應用程序也被複制到其他節點,夜間作業在所有實例上執行。如果僅在一個實例上運行夜間作業(如果它在N個實例上部署),該如何運行?
有沒有辦法讓我單個節點執行這項工作?
謝謝。
心中已經更新部署到亞馬遜(並有與Spring小經驗),但我看到一些方法來解決這個問題:
instanceId.hashcode() % dayOfMonthNumber == 0
讓我試着用這些方法開發解決方案。 –
只是告訴我你是否需要幫助 –
開始時,你可以開始工作,或者是它的東西你自己創建的定製? –
我使用Spring來安排它。我使用@Scheduled註釋來標註函數,並傳遞一些cron配置。所以我的註釋看起來像@Scheduled(cron =「0 0 0 * *?」) –
你的問題基本上是這一個的副本:http://stackoverflow.com/questions/31288810/spring-scheduled-task-running-在集羣環境中,我建議閱讀這個問題的答案。 –