1
我正在嘗試使用iron.mq推送隊列,但我很難弄清楚如何在收到消息後正確響應隊列。我意識到,我可能還不能完全理解排隊系統的行爲,但我的理解是,它是這樣的:使用Iron.mq推送隊列與PHP
- 信息發送到隊列
- 消息從隊列推到我的終點
- 留言直到我的端點響應或超時爲止
- 端點以2xx(成功)響應並且它被刪除或4xx/5xx失敗,在這種情況下,隊列將嘗試重新發送消息到端點。
例如,我的腳本(使用FuelPHP)有這樣的事情:
$headers = Input::headers(); //gets array of headers sent from ironmq
$data = @file_get_contents('php://input'); //get the body
現在,我已經收到了消息,我想做的兩兩件事之一:
- 處理消息並返回對成功的ironmq服務器的響應
- 延遲進程(通過發送4xx/5xx?)並在定義的時間段後重新發送進程。
但是......您如何迴應推送消息?由於消息似乎不再存在,因此使用PHP SDK的deleteMessage方法會導致出現異常。
感謝。 deleteMessagePushStatus()用於刪除消息。我沒有看到SDK中發送4xx或5xx的方法。有一個嗎? –
@ Anti-Dentite你的端點是如果有問題會返回4xx或5xx的端點。 IronMQ將重新嘗試您在推送隊列上設置的重試次數。如果你的端點返回一個200,那就很好,消息會自動刪除,就像千千萬萬的人說的那樣。或者如果您需要大量時間來處理消息,則可以返回202。 –