[英]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.