使用Iron.mq-push队列与PHP



我正在尝试使用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方法会导致异常,因为消息似乎已不存在。

  • 版本1。终结点响应为状态202。http://dev.iron.io/mq/reference/push_queues/#how_the_endpoint_should_handle_push_messages您应该在通过deleteMessagePushStatus() 处理后明确删除消息

  • 版本2。终结点已响应,状态为200。消息将自动删除,无需操作

所以-两种方式:

  1. 202->做长时间工作->deleteMessagePushStatus()
  2. 4xx或5xx->4xx或5xx(多次)->200

相关内容

  • 没有找到相关文章