接收服务器关闭时存储CURL请求

时间:2013-11-15 13:00:47

标签: php curl

我有一个联系表单,通过CURL请求将非敏感数据(名称,消息,一些复选框和地址字段)发送到外部CRM系统。

问题是,有时接收系统因维护而关闭,我必须暂时将传入的请求存储在某处。现在,当我收到传入维护的消息时,我手动执行此操作,但从长远来看,这不是一个选项。

我的问题是,根据服务器状态自动存储和发送的最佳方法是什么。我知道它应该依赖于CURL响应代码,如果它返回代码200,脚本应该检查任何临时存储的请求是否与当前的请求一起发送,但我不确定实现这个的最佳方法是什么 - 例如,我想知道数据库表中的序列化请求是否比制作JSON数组并将其存储在稍后删除的文件中更好。

你会如何解决这个问题?欢迎提供给我的任何建议和提示。

感谢。

1 个答案:

答案 0 :(得分:0)

我会执行以下过程以确保HTTP请求成功发送到目标服务器:

  1. 确保服务器已启动并运行,您可能需要使用get_headrs执行此检查。
  2. 根据服务器上一步的响应,您将执行两个操作之一:

    1)如果服务器响应正常,那么请先解决您的请求。

    2)如果服务器响应不正常,那么您可能希望以某种序列化形式将HTTP请求存储在数据库中。

  3. 运行一个cronjob,读取来自DB的所有请求并根据服务器的响应触发它们,如果请求成功,则从DB表中删除其记录。

  4. 在cronjob运行的时候,我会使用HttpRequestPool并行运行所有请求。

    我建议使用数据库存储而不是JSON文件存储,因为在服务器成功处理某些HTTP请求并且有些不是,在这种情况下你想要的情况下,它将更容易维护删除成功的并保留其他的,使用数据库更容易。