我正在使用.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个异步调用,这是否有害,或者框架会为我处理吗?
谢谢