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