簡體   English   中英

同步調用webapi中的方法

[英]Call methods inside webapi synchronously

我有將數據保存到數據庫中的POST方法。

[POST]
public void SaveData()
{
  try
  {
    BusinessLayer businessLayerObject = new BusinessLayer();
    businessLayerObject.SaveDataIntoDB();
  }
  catch(Exception ex)
  {}
}

BusinessLayer.cs:-

public void SaveDataIntoDB()
{
  try
  {
    using (var context = new EntityContext())
   {
    using (DbContextTransaction transaction=context.Database.BeginTransaction())
    {
 .... ......
    }
   }
  }
catch(Exception ex)
  {}
}

當同時有多個請求SaveData方法時,我希望SaveDataIntoDB()方法被同步調用。 當一個SaveDataIntoDB()方法的處理完成時,它應調用其他方法。 可以做什么呢?

當前它沒有這樣做。

您正在尋找的是隊列(FIFO)。 如何實施在很大程度上取決於您的部署方式。

如果使用的是單實例部署,則可以創建一個包裝Queue<T> 它應實現為單例,並以異步方式將排隊的消息發送到數據庫。

如果您使用橫向擴展方法,則需要RabbitMQ,MSMQ或其他消息隊列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM