ShopifySharp 创建订单错误率限制

问题描述 投票:0回答:1

我尝试通过 API(使用 ShopifySharp)向 Shopify 添加订单,但添加 4 个订单后我总是收到错误。

System.AggregateException: 'One or more errors occurred. ((429 Too Many Requests) Exceeded order API rate limit, please try again in a minute. Upgrade to a paid account to remove this limit.)'

代码:

        public async Task AddOrder(Order order)
        {
            try
            {
                Thread.Sleep(1000);
                await orderService.CreateAsync(order);
            }
            catch (ShopifyRateLimitException e)
            {
                await Task.Delay(10000);
                await orderService.CreateAsync(order);
            }

        }
var taskOrders = AddOrder(order);
taskOrders.Wait();

我知道有一个允许每秒 2 个请求的速率,这就是为什么我有 Thread.Sleep(1000) (也尝试过 Task.Delay)。

在此调用之前,不会对 Shopify 进行任何 API 调用。 它总是让你添加 3-4 个订单,然后弹出错误。

但是例如,当我逐个删除订单时,一切正常(1 分钟内 50 个订单),具有相同的实现,只是为了删除。

此外,我尝试将策略更改为 ShopifySharp 提供的“RetryExecutionPolicy”或“SmartRetryExecutionPolicy”。

尝试更改延迟时间,但即使 10 秒后错误仍然弹出。

shopify 上的应用程序拥有所有权利。

c# shopify shopifysharp
1个回答
0
投票

我也有同样的问题。我发现在“RetryExecutionPolicy”中将“retryOnlyIfLeakyBucketFull”设置为 false 会起作用,但会使我的代码变慢。我的时间等了30秒。

var service = new OrderService(myShopifyUrl, shopAccessToken);
service.SetExecutionPolicy(new RetryExecutionPolicy(false));

如果有人找到更好的方法,我愿意接受。我给开发人员发了电子邮件,正在等待回复。

© www.soinside.com 2019 - 2024. All rights reserved.