Play框架的一大優點是它完全無狀態,只有請求/響應導向。這是非常好的,因爲它允許我將我的應用部署到雲中,並在負載均衡器後面擴展播放實例的數量,而無需擔心狀態(會話)複製...Play Framework:作業對無狀態模型的影響
但是,最近我需要在HTTP請求之外執行一些應用程序邏輯,並發現Play可以定義完全由框架管理的作業。聽起來很棒,但它提出了一個問題:這些工作如何適應Play所使用的無狀態模型?
說我有一個維護任務,需要每小時運行一次,併爲此定義一個計劃作業。如果我然後在負載平衡器後面部署多個Play實例,那麼每個實例會同時啓動該作業嗎?如果是這樣,那麼處理需要「專門」運行的工作的好方法是什麼?
我正在考慮在非集羣服務器上創建一個新的播放實例,重新使用現有(集羣)實例的JPA模型(從而連接到同一個數據庫)。這個新實例只包含維護作業,並且由於它託管在非集羣服務器上,所以不存在同時運行作業的風險。同時,這將允許我保持現有的羣集實例完全無狀態,並易於實現主機/負載均衡。這會是一個好方法嗎?
開始賞金,見下文。 – ripper234