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


Storing CURL requests when the receiving server is down

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

问题是,有时接收系统停机进行维护,我必须将传入的请求存储在临时位置。现在,当我收到传入维护的消息时,我正在手动执行此操作,但从长远来看,这不是一个选项。

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

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

谢谢。

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

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

    1)如果服务器响应正常,那么去一个头并触发你的请求。

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

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

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

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