1
我有以下情形:亞馬遜SQS消息隊列
- 用於需要進行處理,發送包含工作說明一個消息給一個Amazon SQS消息隊列中的作業
- 我有具有不同的過程做的工作
需要滿足以下條件:
- 如果一個進程失敗要完成一項工作(可能是因爲它在崩潰時運行的服務器),則該作業必須再次可用於其他進程。
- 當一個工作正在進行時,具有相同描述的其他工作必須等到第一個工作完成或達到其超時。
- 根據消息隊列的長度,系統應該很容易擴展。
爲了確保(1),我的第一個想法是使用Amazon SQS隊列提供的消息鎖定功能,但是如何確保(2)呢?將流程分配給工作描述將是一種選擇,但(3)會更困難。
當你說「其他有相同描述的工作」時,你是什麼意思?我們可能需要更多的細節來幫助。例如,如果我們正在進行圖像大小調整,那麼將系統限制爲一次只能執行一次調整大小操作是沒有意義的。 – Jeff
我認爲這個問題會更清晰一些,但這裏有一些細節:它是關於時間序列(一組歷史數據)的計算模式。具有「相同描述」的作業意味着他們必須計算相同時間序列的模式。每當時間序列的歷史數據更新時,通過向隊列發送相應的消息來觸發模式重新計算。 –