0

我有一个 asp.net 3.5 Web 应用程序,它会生成大量与审计相关的数据。由于该数据与用户没有立即相关,我希望能够将其异步保存到 MSSQL 数据库中,让用户无需等待即可进入下一页。我使用 Nhibernate 作为我的 ORM。

我研究了 PageAsyncTasks,据我所知,它们只允许您并行执行页面操作,但所有操作仍然必须在页面完成加载之前完成。是否有另一种相当轻量级的异步处理方法可以继续进行而不影响页面加载?简单地手动启动一个新线程是一个可接受的过程吗?

4

1 回答 1

0

您可以在您的解决方案中创建一个 Web 服务,当您的服务器端代码完成并准备好将用户移至下一页时,它可以调用您的 Web 服务来进行审计,就像火了之后忘记类型的事情。

不确定 NHibernate 会话是否是线程安全的,因此如果您创建一个新线程,请注意上下文。

理想情况下,您可以使用队列和服务总线来安全和异步地处理这类事情,但这涉及架构更改。

不确定这是否可行,但如果审核实际上显着减慢了 UI 的速度,那么您最好改进该过程并使其保持同步。不管怎样,祝你好运。

于 2013-02-01T14:36:04.467 回答