Php StripeAPI列出发票的速度非常慢
我正在构建StripeSaas,它检索注册用户的所有发票并进行一些统计 我的服务器位于Godaddy共享服务器上,具有512mb ram,页面加载时间可能需要20秒,这对性能来说太糟糕了。如果用户有50个磁盘,则此情况下 我正在使用带条带包的Laravel5.4框架 这是我在控制器中的代码Php StripeAPI列出发票的速度非常慢,php,laravel,stripe-payments,stripe-connect,Php,Laravel,Stripe Payments,Stripe Connect,我正在构建StripeSaas,它检索注册用户的所有发票并进行一些统计 我的服务器位于Godaddy共享服务器上,具有512mb ram,页面加载时间可能需要20秒,这对性能来说太糟糕了。如果用户有50个磁盘,则此情况下 我正在使用带条带包的Laravel5.4框架 这是我在控制器中的代码 \Stripe\Stripe::setApiKey($secret_key); $invoices= \Stripe\Invoice::all(array("limit" => 10
\Stripe\Stripe::setApiKey($secret_key);
$invoices= \Stripe\Invoice::all(array("limit" => 100));
我的观点是
@foreach($invoices->autoPagingIterator() as $invoice)
<tr>
<td>invoice.created</td>
<td> {{$invoice->id}}</td>
<td>{{$invoice->amount_due}}</td>
<td> {{$invoice->attempt_count}}</td>
<td> {{$invoice->livemode}}</td>
<td> {{$invoice->charge}}</td>
<td> {{$invoice->currency}}</td>
<td> {{$invoice->customer}}</td>
<td> {{$invoice->date}}</td>
<td> {{$invoice->description}}</td>
<td> {{$invoice->discount}}</td>
<td> {{$invoice->ending_balance}}</td>
<td> {{$invoice->period_end}}</td>
<td> {{$invoice->period_start}}</td>
<td> {{$invoice->subscription}}</td>
<td> {{$invoice->paid}}</td>
</tr>
@endforeach
@foreach($invoices->autoPagingIterator()作为$invoices)
发票已创建
{{$invoice->id}
{{$invoice->到期金额}
{{$invoice->尝试计数}
{{$invoice->livemode}
{{$invoice->charge}
{{$invoice->currency}
{{$invoice->customer}
{{$invoice->date}
{{$invoice->description}
{{$发票->折扣}
{{$invoice->期末余额}
{{$invoice->period_end}
{{$invoice->period_start}
{{$invoice->subscription}
{{$invoice->paid}
@endforeach
其逻辑是秘密密钥存储在数据库中,每个用户都有自己的密钥
我想知道,这是在不重载的情况下实现SaaS的最佳实践。Stripe内置了速率限制,以防止您一次提取太多数据 我们最近为我们的客户建立了一个系统(我们使用Stripe Connect作为客户和企业之间的“中间人”,收取费用),这需要我们显示以前的发票。我们想出的唯一真正的方法是同步数据并保留本地副本 这花了一周的时间来运行我们所有的旧数据,但现在运行在运行中,可排队事件在创建条带数据时处理拉条带数据 我的建议是设置一个队列,将所有发票数据拉到您自己的数据库中,然后您可以在那里格式化和显示,而不会出现明显的加载延迟。将其与查询缓存和索引相结合,您应该能够以较低的服务器开销进行非常快速的设置
作为旁注,我还建议您寻找一个比共享托管更好的托管选项,因为在这样一个有限的环境中,您在尝试执行队列和日程安排等操作时会遇到很多问题。一个简单的DigitalOcean或Linode box与Laravel Forge相结合,从长远来看,使Laravel特定的部署和管理更加容易。与@Rick一样,我也做了类似的工作。我没有对Stripe进行任何轮询,而是镜像了它们的数据模型并将所有内容存储在本地。当你的应用程序增长时,速率限制会变得非常有问题。嗨,petter adam,如果下面的这个或任何答案都解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做,但这样做通常是良好的做法。