0

通常,帐单应该在预定日期在后台执行(我还没有弄清楚如何做到这一点,但这是另一个话题)。

但有时,用户可能希望手动执行计费。单击后,无论用户端发生什么(例如关闭浏览器、机器死机、网络中断等),我都想确保操作完成。

我很确定 db.SaveChanges() 将其数据库操作包装在事务中,所以从服务器的角度来看,我相信整个事情要么完成要么失败,没有部分影响。

但是 POST 和 db.SaveChanges() 之间的所有工作呢?有没有办法确保用户不会无意或故意阻止它完成?

我想这个问题的一个必然结果是正在运行的异步控制器或正在运行TaskThread用户断开连接会发生什么?

4

1 回答 1

0

我之前的项目实际上是在 MVC 中做一个计费系统。Task我清楚地记得测试如果我使用然后快速退出该站点会发生什么。它很好地完成了所有计算,在 SQL Server 中运行了一个存储过程,并在完成后给我发送了一封电子邮件。

因此,回答您的问题:如果您将操作包装在 a 中Task,它应该无论如何都可以毫无问题地完成。

于 2013-02-21T16:37:46.073 回答