Использование асинхронных методов для множества повторяющихся вызовов API для Ebay - PullRequest
0 голосов
/ 26 января 2019

Я использую .Net api framework для звонков на Ebay для обновления статуса доставки. У меня есть код, который работает, но API Ebay общеизвестно медленный и может занять от 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 асинхронных вызовов, это вредно или фреймворк обрабатывает это для меня?

    • Мне, очевидно, нужно увидеть результат, чтобы убедиться, что я знаю, что он успешен.

    Спасибо

...