【发布时间】:2020-04-14 18:42:57
【问题描述】:
我有一个 CURL 请求,有时,根据请求负载,由于处理和计算,需要几分钟才能从 API 接收响应。
为了良好的用户体验,不希望有这种行为。 在等待响应时,有时很长时间,用户无法在网站上执行任何功能。
所以我正在寻找解决方案,以便用户可以在此应用程序等待 API 的结果时使用该应用程序。
我已经考虑过的解决方案。
记录请求并使用 cron 作业对其进行处理。 不幸的是,这有几个陷阱。 - 需要每分钟或不断地运行一个 cron 作业。 -当前用户请求最小或API超快的情况,整个请求可能只需要2-3秒。但是,当使用 cron 并且要求我们提前 30 秒运行下一个 cron 作业时,您最终会得到 32 秒的转身结果。 所以这个解决方案可能会改善一些,也可能会恶化一些,不确定我是否真的喜欢这样。
几秒钟后中止 CURL 请求。 尽管 API 会向我选择的 url 端点发送单独的响应,并且在发布请求后终止传输似乎是安全的,但可能存在这样的情况,即那几秒钟可能甚至不足以建立与 API 的连接。我想我想说的是,通过终止 CURL,我无法知道实际请求是否通过。
我可以考虑另一种方法吗? 谢谢。
【问题讨论】:
标签: php mysql apache curl cron