1

我正在尝试使用 iron.mq 推送队列,但在收到消息后很难弄清楚如何正确响应队列。我意识到我可能还没有完全理解队列系统的行为,但我的理解是它是这样的:

  1. 消息发送到队列
  2. 消息从队列推送到我的端点
  3. 消息被“保留”,直到我的端点响应或超时
  4. 端点响应 2xx(成功)并被删除或 4xx/5xx 失败,在这种情况下,队列将尝试将消息重新发送到端点。

例如,我的脚本(使用 FuelPHP)是这样的:

    $headers = Input::headers(); //gets array of headers sent from ironmq
    $data = @file_get_contents('php://input'); //get the body

现在我收到了消息,我想做两件事之一:

  1. 处理消息并向 ironmq 服务器返回成功的响应
  2. 延迟该过程(通过发送 4xx/5xx?)并在定义的时间段后重新发送。

但是......你如何回应推送消息?使用 PHP SDK 的 deleteMessage 方法会导致异常,因为消息似乎不再存在。

4

1 回答 1

1

所以 - 两种方式:

  1. 202 -> 做长时间的工作 ->deleteMessagePushStatus()
  2. 4xx 或 5xx -> 4xx 或 5xx(多次)-> 200
于 2013-06-27T21:24:55.183 回答