所有,亞馬遜彈性魔豆工人的cronjob(SQS)觸發相同的消息多次
我有我的亞馬遜彈性魔豆工人一個相當令人不安的問題SQS結合起來,這是爲了提供一個cron作業調度 - 這一切使用PHP運行。
以下情形 - 我需要一個PHP腳本在後臺,它最終可能運行幾個小時定期執行。我看到這個漂亮介紹這似乎是恰當覆蓋我的方案(AWS Worker Environments - 見週期任務的部分)
所以我讀了很多的HOWTO,並設立EBS工人與SQS(實際上是創建過程中自動完成工人的),並提供了我的部署包內的cron配置(cron.yaml)。
這個cron腳本正確識別。 sqs守護進程啓動,消息被放入隊列並按計劃精確觸發我的PHP腳本。腳本運行,一切正常。
隊列的配置是這樣的: SQS configuration
但處理一段時間後(劇本仍然忙 - 和NO是不是下一個計劃運行^^)打開第二個消息,同一腳本的另一個實例將以5分鐘的間隔執行,另一個實例和另一個實例將被執行。
我懷疑,不知何故該消息不會從隊列中刪除(雖然我保證腳本發送狀態200回),它在創造新的消息結束了,如果腳本運行時間過長。
有沒有辦法阻止另一消息的產卵?告訴隊列或sqs守護進程不要創建新的隊列消息?我必須刪除我的代碼中的消息嗎?雖然教程美國應該自動發生
我想只觸發腳本,從隊列中刪除消息,並讓腳本運行。沒有華麗的回退/重試機制,請:-)
我花了很多時間試圖找到在互聯網上的東西。不成功。任何幫助表示讚賞。
由於
嘿邁克爾,謝謝你的迴應。你是對的。這是一樣的信息。我發送200這裏描述[鏈接](http://stackoverflow.com/questions/15273570/continue-processing-php-after-sending-http-response),但它並沒有騙過守護進程。我會再試驗一下。如果我發送200的速度不夠快 - 有沒有辦法延長Inactivity Timeout或防止隊列再次產生消息? – Jarek