同步调用webapi中的方法

时间:2018-11-06 09:28:37

标签: c# .net asp.net-web-api

我有将数据保存到数据库中的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()方法的处理完成时,它应调用其他方法。 可以做什么呢?

当前它没有这样做。

1 个答案:

答案 0 :(得分:0)

您要查找的是队列(FIFO)。实施方法在很大程度上取决于您的部署方式。

如果使用的是单实例部署,则可以创建一个包装Queue<T>的类。它应实现为单例,并以异步方式将排队的消息发送到数据库。

如果使用横向扩展方法,则需要RabbitMQ,MSMQ或其他消息队列之类的东西...