使用异步方法对Ebay进行大量重复的api调用

时间:2019-01-26 03:21:22

标签: c# .net async-await ebay-api

我正在使用.Net api框架调用Ebay来更新运输状态。我有一些有效的代码,但众所周知,Ebay api速度很慢,每次调用可能需要3-5秒。在大约50个项目上,它有点慢。

这是我的工作代码:

private void button1_Click(object sender, EventArgs e)
    {
        Query query = new Query(OrderItem.Schema);
        query.Top = "50";
        query.WHERE(OrderItem.Columns.SourceId, 1);
        query.ORDER_BY(OrderItem.Columns.OrderItemId, "DESC");
        List<int> salesIds = new List<int>();

        OrderItemCollection col = OrderItemController.FetchByQuery(query);

        foreach(OrderItem oi in col)
        {
            GetOrdersCall getOrders = new GetOrdersCall(EbayContextHelper.GetContext(YellowLily.Business.Enums.ApplicationSource.YellowLily));
            getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
            getOrders.OrderRole = TradingRoleCodeType.Seller;
            getOrders.OrderIDList = new StringCollection(new[] { oi.ExtOrderId });
            // this fires of an HTTP request behind the scenes 
            getOrders.Execute();

            foreach (OrderType order in getOrders.OrderList)
            {
                salesIds.Add(order.ShippingDetails.SellingManagerSalesRecordNumber);
            }
        }

    }

请注意以下代码,我已将更新运输状态替换为仅提取数据,即获取订单并返回一些数据,因为我不想在测试时干扰实际订单。

我是一个合理的编码器,但是异步库对我来说很混乱。谁能为我指出如何将其转换为异步呼叫的正确方向?

我有两个问题:

  • 如果我很快触发了50个异步调用,这是否有害,或者框架会为我处理吗?

    • 我显然需要看到结果回来,以确保我知道它成功了。

    谢谢

0 个答案:

没有答案