0

我正在尝试使用 Paypal API 交易端点。

我想获取给定帐户的所有交易。这个数字可能在数百万笔交易中达到数十万。对于这些事务中的每一个,我都需要将其存储在数据库中以供排队作业处理。我一直在试图找出用 Laravel 提取这么多记录的最佳方法。Paypal 的最大请求项目限制为每页 20 个。

我最初的想法是创建一个作业,当用户向我提供他们的 API 凭据以获取前 20 个项目并处理它们,然后从包含要使用的起始索引的第一个作业中分派一个作业。这将永远循环,直到它出错。尽管这似乎效果不佳,因为它会导致网关在保存这些 API 凭据时超时,并且对 API 的请求最终会超时(在获取所有事务之前)。我还应该提到,交易的总数是未知的,所以链接似乎不是答案,因为没有办法知道要分派多少工作......

想法?获取 API 数据是否最适合工作?

4

3 回答 3

1

您可以在第一个作业结束时分派相同的作业,该作业查询您当前的数据库以查找该作业的事务的起始索引。

因此,即使您的工作出错,您也可以再次发送它,然后它将从之前结束的地方恢复

于 2019-12-08T14:09:25.640 回答
1

是的,工作是路要走。我不熟悉 paypal api,但似乎请求是速率限制paypal 速率限制..您可能想稍微延迟您的 api 请求..您也可以创建一个类来通过跟踪您的最新请求来监控您的 api 请求消耗在工作中,您可以确定何时触发下一个请求并将其记录在数据库中......

我的谦虚建议请不要提取所有数据,您的数据库会很快变得臃肿,并且每次拥有新帐户时都需要扩展,这不是一件容易的事。

于 2019-12-08T14:12:28.543 回答
0

可能您需要将您的应用程序与另一个数据引擎(如 AWS)链接起来,无论如何我认为最好的想法是创建一个 APi,只提取最重要的数据,编制索引,并将所有大数据保存在另一个端点中,以便您可以访问它们如果你需要

于 2019-12-08T17:42:42.860 回答