2013-12-23 38 views
2

我目前在AWS上有一個Windows實例,它運行Windows計劃任務來執行.net腳本來處理天的訂單。使用AWS預定任務

我最近使用ELB加載了一些實例,這很好。

問題是如何設置計劃任務,以便不是所有實例都運行它。我曾經在AWS上看過OpsWorks,SimpleWorkFlow等,但是對於這個相對簡單的任務我應該專注於哪一個問題感到困惑。

感謝

+0

嗨拉吉,我正在經歷您的查詢,我現在正在打擊,我要在亞馬遜上有一個asp.net頁面,我需要在亞馬遜每發送一次電子郵件,這樣我可以繼續前進?我對此有一個公開的問題,你可以在那裏回覆我。謝謝。 –

回答

1

你也許可以使用Amazon SWF,但似乎矯枉過正/複雜。

還有亞馬遜管道。這可能是正確的答案,但需要一些閱讀來設置。

簡單的事情就是安排你的工作在所有的盒子上,並且有一個數據庫聲明勝利者。

A)您可以讓它「鎖定」數據庫中未處理的訂單,然後處理它們。只要您鎖定一筆交易,其他工作人員將獲得0筆訂單(或幾份新訂單)進行處理。 B)你可以創建一個特殊的表格,其中包含作業將鎖定的單個行。像「更新work_table設置工人='mybox',work_start = now()其中worker =''」。

如果你想對工人箱子的死亡強健,必須制定更復雜的規則:工人可以四處走動,直到工人把他的工作標記爲完整。如果工作沒有及時完成,他們可以假設第一名工人死亡,並試圖從他那裏竊取鎖定並自己執行工作。

如果您沒有數據庫,則始終可以使用SDB(Simple DB)或DynamoDB。每天打幾次數據庫肯定會適合免費套餐。

如果你做得對,整件事只會是20-50行的代碼。

+0

是的,我確實看過AWS數據管道,但似乎並沒有讓我執行腳本/網址。似乎與數據庫操作,備份等有更多的關係,並且似乎很少有關於此的在線幫助/教程。 您建議的數據庫路由是一個公平的選擇,如果我在下週無法在AWS上找到任何幫助,它可能會是前進的方向! – Raj

1

假設您需要每天運行一次工作流程,您可以生成包含日期的工作流程id,並確保只觸發一個實例。

如果你想要n個實例,那麼你可以有一個父工作流(由工作流ID確保的單例),它產生了n個子工作流。