gpt4 book ai didi

ruby-on-rails - 如何在后台处理事务时向用户显示 'your payment is processing...' 页面?

转载 作者:行者123 更新时间:2023-12-04 16:35:50 25 4
gpt4 key购买 nike

我经营一家网店,流量非常大。最近,由于支付网关出现某种问题,整个系统在一次大型促销事件中陷入停顿,他们的 API 响应需要 17 秒才能响应,而不是正常的 2-3 秒。有数百人同时尝试购买。这导致生产集群中每个 Web 服务器中的所有 Web 工作线程都被捆绑起来等待来自支付网关的 API 响应。整个生产集群被锁定,无法提供任何页面。

此问题的一个解决方案是使用 Resque 在后台处理付款。 Web 服务器会立即向用户返回一个响应,例如“您的付款正在处理中……”Web 服务器将能够继续处理下一个 Web 请求。

问题是在处理完付款后继续结账。我无法使用 AJAX 来轮询交易是否已完成,因为许多客户没有 JavaScript。我不能依赖它。我不想使用 JavaScript 或任何类型的可靠性低的服务器推送技术,因为如果一定比例的结帐在“正在处理...”页面上停滞不前,这会造成代价高昂的客户支持问题。

我如何设计页面流,以便可以在后台可靠地处理交易?

最佳答案

研究基于事件的解决方案(例如 EventMachine)并让它处理这些请求。在这种情况下,标准的 RoR 服务器将全部崩溃。使用 javascript 进行某种后端处理绝对是解决此问题的最简单方法,但如果这不是一种选择,我会探索将该流程转移到更适合处理 API 等问题的东西中,例如永远不会响应的问题。

关于ruby-on-rails - 如何在后台处理事务时向用户显示 'your payment is processing...' 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10577233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com