ASP.NET长时间运行的SQL Server程序-如何处理?消息传递?

ASP.NET长时间运行的SQL Server程序-如何处理?消息传递?,.net,sql-server,.net,Sql Server,我有一个web应用程序,当满足某些条件时,需要启动一个长时间运行的SQL Server过程(以重建表)。建议的程序是什么 我在想,当满足条件时,将向数据库中插入一条记录,并安排一个SQL server作业以指定的间隔检查该表,然后启动该过程。不过,这似乎有点俗气 处理此问题的首选方法是什么?作为一个相关问题,处理未来事件的首选方式是什么(即在用户注册10天后发送电子邮件?) 这种类型的场景是消息传递的全部内容吗?如果您不必担心调用以执行存储过程后的结果,那么最好异步运行它。如果您不必担心调用以执

我有一个web应用程序,当满足某些条件时,需要启动一个长时间运行的SQL Server过程(以重建表)。建议的程序是什么

我在想,当满足条件时,将向数据库中插入一条记录,并安排一个SQL server作业以指定的间隔检查该表,然后启动该过程。不过,这似乎有点俗气

处理此问题的首选方法是什么?作为一个相关问题,处理未来事件的首选方式是什么(即在用户注册10天后发送电子邮件?)


这种类型的场景是消息传递的全部内容吗?

如果您不必担心调用以执行存储过程后的结果,那么最好异步运行它。

如果您不必担心调用以执行存储过程后的结果,异步运行它可能会很好。

您的方法确实可行,而且是我看到的一种方法。例如,在一个拥有千兆字节库存数据的复杂网络中,该公司基本上实现了您所描述的,允许全天部分更新库存数据

我见过的其他一些方法涉及到位于应用服务器上的调度服务,该服务将调用处理事件的一段代码。(例如你问题的第二部分)。在应用层中使用此功能可以扩展事件的处理,并且可以使用DB作为备份存储,以确保不会丢失任何事件

您的用户是否需要查看操作的结果?您还可以启动一个异步调用来处理结果,然后等待用户并提供状态信息。如果不想挂起用户,则需要一个状态表来存储结果


我最不愿意看到的是服务代理。我还没有用过它,也不确定它是否合适,但我会把它作为一种选择。我们已经开始研究它,将其作为启动长期运行的断开连接的工作流的一种方法,但我在到达任何地方之前就离开了公司。

您的方法确实可行,而且是我看到的一种方法。例如,在一个拥有千兆字节库存数据的复杂网络中,该公司基本上实现了您所描述的,允许全天部分更新库存数据

我见过的其他一些方法涉及到位于应用服务器上的调度服务,该服务将调用处理事件的一段代码。(例如你问题的第二部分)。在应用层中使用此功能可以扩展事件的处理,并且可以使用DB作为备份存储,以确保不会丢失任何事件

您的用户是否需要查看操作的结果?您还可以启动一个异步调用来处理结果,然后等待用户并提供状态信息。如果不想挂起用户,则需要一个状态表来存储结果


我最不愿意看到的是服务代理。我还没有用过它,也不确定它是否合适,但我会把它作为一种选择。我们已经开始研究它,将其作为启动长期运行的断开连接的工作流的一种方式,但我在到达任何地方之前就离开了公司。

我想通知进行需要重建的更改的用户(a)重建即将进行,以及(b)重建已完成。我想通过UI中的消息和电子邮件来实现这一点。我更希望应用程序(而不是数据库处理电子邮件)

我希望能够在交易完成后很长时间在UI中通知他们(如果他们注销,那么在当天晚些时候重新登录)


当你说App server上的计划服务时,你是指像windows服务这样的服务,它只负责处理这类事情吗?

我想通知进行需要重建的更改的用户(a)重建即将进行,以及(b)重建已完成。我想通过UI中的消息和电子邮件来实现这一点。我更希望应用程序(而不是数据库处理电子邮件)

我希望能够在交易完成后很长时间在UI中通知他们(如果他们注销,那么在当天晚些时候重新登录)

当你说在应用服务器上调度服务时,你是指像windows服务这样的服务,它完全负责处理这类事情吗